2016-04-13 34 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