2017-07-14 106 views
-2

请告诉我,我如何用Python + Selenium点击这个链接?Selenium + Python。如何点击此链接?

HTML: enter image description here

SCRIPT(但不工作):

from selenium import webdriver 
import time 
browser=webdriver.Firefox() 
browser.get('http://rutracker.ignn.ru') 
browser.find_element_by_xpath("//a[contains(@href,'tmozs.com')]").click() 
browser.quit() 
+0

有一个【答案】(https://stackoverflow.com/questions/45095549/pythonselenium-cant-locate-element/45095830# 45095830)到你的[上一个问题](https://stackoverflow.com/questions/45095549/pythonselenium-cant-locate-element)它可以帮助解决当前问题 – Andersson

+0

@Andersson哪一个? – DebanjanB

+0

@DebanjanB,链接评论 – Andersson

回答

1

这里是回答你的问题:

首先,你需要切换到frame

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 
import time 

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe') 
driver = webdriver.Firefox(firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe") 
driver.get('http://rutracker.ignn.ru') 
time.sleep(5) 
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@src,'tmozs.com/jsonp.php')]")) 
time.sleep(5) 
driver.find_element_by_xpath("//div[@class='feed-inner']/div[@class='feed-cell'][1]/a[@class='feed-cell-inner' and contains(@href,'http://tmozs.com/info.php?')]").click() 
time.sleep(5) 
driver.quit() 

PS:您可以考虑以诱导ExplicitWait代替time.sleep()切换到帧之后,用于元件是可见/点击。

让我知道如果这个回答你的问题。

+0

引发exception_class(消息,屏幕,堆栈跟踪)文件“c:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py”,第192行,check_response selenium.common.exceptions.NoSuchElementException:消息:无法找到元素:// a [@ class ='feed-cell-inner'and contains(@ href,'http://tmozs.com/info.php?')] –

+0

不工作=(( –

+0

@AndrewF检查我的更新答案,让我知道它是否适合你。 – DebanjanB

0

你可以试试这个XPATH: - //div[@class="feed-cell"]/a[@class="feed-cell-inner"]

//a[@class="feed-cell-inner" or contains(@href,"http://tmozs.com") ]

+0

N ot working =(( –

+0

)你可以试试// div/a [@ class =“feed-cell-inner”and @ herf ='xyz.com'] –