首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中使用Selenium单击图像,引发无效的xpath

在Python中使用Selenium单击图像,引发无效的xpath
EN

Stack Overflow用户
提问于 2015-05-02 16:23:55
回答 2查看 791关注 0票数 1

这就是我所拥有的

代码语言:javascript
复制
for arrow in self.driver.find_elements_by_xpath("//img[contains(@src, 'disclosure_closed.gif')]/"):
            arrow.click()

但它把这个扔给了我

代码语言:javascript
复制
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //img[contains(@src, 'disclosure_closed.gif')]/ because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//img[contains(@src, 'disclosure_closed.gif')]/' is not a valid XPath expression.
  (Session info: chrome=42.0.2311.135)
  (Driver info: chromedriver=2.15.322448 (52179c1b310fec1797c81ea9a20326839860b7d3),platform=Windows NT 6.1 SP1 x86_64)

我也试过这样做:

代码语言:javascript
复制
image_url = "http://example.com/disclosure_closed.gif"
for arrow in self.driver.find_elements_by_xpath("//img[@src='%s']/" %(image_url)):
    arrow.click()

这是html:

代码语言:javascript
复制
<img align="top" style="cursor:pointer;" onclick="disclose('44');" id="44disclosure" src="http://example.com/disclosure_closed.gif">
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-02 16:54:42

删除xpath末尾的/

票数 1
EN

Stack Overflow用户

发布于 2015-05-02 21:06:00

看来你已经得到答案了。但是,您不需要为该标识符使用xpath。xpaths比css慢,而且(通常)也不可靠。您可以使用以下css选择器来标识相同的元素:

代码语言:javascript
复制
[src*='disclosure_closed.gif']

或者(特别是用于图像)

代码语言:javascript
复制
img[src*='disclosure_closed.gif']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30004649

复制
相关文章

相似问题

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