Selenium ---无法点击图像

时间:2017-08-18 19:03:46

标签: html python-3.x selenium-webdriver

我有这个功能,我无法点击页面上的所有放大镜。我一直尝试使用不同的替代方案。评论的内容是我到现在为止所尝试的内容。

<a href="#" onclick="return Go(event, 2)">
                 <img title="Details" src="/common/images/Detail.gif">
</a>

请参阅下面的HTML代码查看方式。

 #browser.find_element_by_xpath(".//*[@id='resultsTable']/tbody/tr[17]/td[11]/a[2]/img").click()
        #lupa = browser.find_element(By.XPATH("//img[@src='/common/images/Detail.gif']"))
        #lupa = browser.find_element(By.cssSelector("a[src='/common/images/Detail.gif']"))
        #lupe = browser.find_elements_by_css_selector("a[src='/common/images/Detail.gif']"))
        #lupa=browser.find_element_by_link_text("Details").click()
        #lupa= browser.find_element_by_id("Details").click()
        #elements = browser.find_elements_by_css_selector("a[src='/common/images/Detail.gif']"))

这是我用来点击图片的旧版XPATH。

$PSCmdlet

感谢您的回答!

科恩

1 个答案:

答案 0 :(得分:1)

您尝试过的大多数定位器无效。您可能应该花些时间了解不同的定位器类型及其工作方式。

鉴于HTML,下面的CSS选择器应该找到你想要的IMG标签。

img[title='Details']

另一件事,你没有正确使用隐式等待。它为驾驶员的生命设定了一次。一遍又一遍地调用它什么也没做。您不想使用隐式等待,而是使用显式等待。查看WebDriverWait的一些教程。

编辑:点击IMG标记应该可以找到,因为它被所需的A标记所包围。但是......如果你需要专门点击A标签,你应该可以使用下面的定位器。

更具体的CSS选择器

a[onclick='return Go(event, 2)'] > img[title='Details']

的XPath

//a[@onclick='return Go(event, 2)'][./img[title='Details']]