首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium--不能单击图像

Selenium--不能单击图像
EN

Stack Overflow用户
提问于 2017-08-18 19:03:46
回答 1查看 1K关注 0票数 0

我有这个功能,我不能点击所有的放大镜从一页。到目前为止,我一直在尝试使用不同的替代方案。我想说的是,到目前为止,我一直在努力。

代码语言:javascript
复制
def lupa():

    elements = browser.find_elements_by_css_selector("a[onclick='return Go(event, 2)'] > img[title='Details']")
for element in elements:
    #element.click()
    element.send_keys(Keys.SPACE)
    time.sleep(1)

请参阅下面的HTML代码的外观。

代码语言:javascript
复制
<a href="#" onclick="return Go(event, 2)">
                 <img title="Details" src="/common/images/Detail.gif">
</a>

这是我用来单击图像的旧XPATHs。

代码语言:javascript
复制
 #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']"))

谢谢你的回答!

科恩

EN

回答 1

Stack Overflow用户

发布于 2017-08-18 20:48:36

你尝试过的大多数定位器都无效。您可能应该花一些时间学习不同的定位器类型以及它们是如何工作的。

给定HTML,下面的CSS选择器应该会找到您想要的IMG标记。

代码语言:javascript
复制
img[title='Details']

另外,您没有正确地使用隐式等待。它只为司机的一生设置了一次。一遍又一遍地打电话什么都没有。您不想使用隐式等待,而是使用显式等待。请看一些WebDriverWait教程。

编辑:单击IMG标记应该可以找到,因为它被所需的A标记包围了。但是..。如果您需要具体地单击A标记,您应该能够使用下面的定位器。

更具体的CSS选择器

代码语言:javascript
复制
a[onclick='return Go(event, 2)'] > img[title='Details']

XPath

代码语言:javascript
复制
//a[@onclick='return Go(event, 2)'][./img[title='Details']]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45763495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档