2016-04-13 36 views
-1

我想要做的是讓一個簡單的程序,讓我跑,它基本上去的Torrentz,並遵循幾個鏈接,最終能夠通過uttorent下載文件。以下是我編碼到目前爲止,我似乎無法使變量linkElem工作。而且我也似乎無法讓linkElem.find_elements_by_xpath轉到必要的鏈接。如果你認爲你知道什麼是錯的,請幫忙。 謝謝。硒Python 3.4.3自動洪流:鏈接部分

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 


browser = webdriver.Firefox() 
browser.get('https://torrentz.eu/') 

searchElem = browser.find_element_by_id('thesearchbox') 
searchElem.send_keys('Limitless') 
searchButton = browser.find_element_by_id('thesearchbutton') 
searchButton.click() 

linkElem = linkElem.find_elements_by_xpath("//div[@class='results']//a[@href='/9ea0c575520a3065d85b285c9474231192368db7']") 


#wait = WebDriverWait(browser, 6) 
#linkElem = wait.until(EC.visibility_of_element_located((By.href, "/9ea0c575520a3065d85b285c9474231192368db7"))) 
#linkElem.clear() 

#linkElem = browser.find_element_by_link_text('S01E20 HDTV x264 LOL ettv') 
#linkElem.click() 


#SignIn = browser.find_elements_by_id('signIn') 
#SignIn.click() 
#passwordElem.submit() 

回答

0

我不認爲你可以也應該依靠href屬性值。而是從搜索結果容器內的dl元素下獲取鏈接。此外,添加等待:你的情況

# wait for search results to appear 
wait = WebDriverWait(browser, 6) 
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.results dl"))) 

links = driver.find_elements_by_css_selector("div.results dl dt a") 
links[0].click() 

links將包含所有的搜索結果鏈接,links[0]是第一聯接。

+0

嘿@alecxe,你能幫我理解在這種情況下'dl'具體做了什麼,變量'links'參數做了什麼? –

+0

@ stuum1。 'dl'是一個元素名稱。 'links'是一個webelements列表。 'links [0]'給你列表中的第一個元素。 – alecxe