python - Xpath点击根本不起作用

标签 python html selenium xpath element

快速信息:我使用的是 Mac 操作系统和 Python 3。

我有大约 800 个链接需要在一个页面上点击(还有更多页面需要自动化)。

它们被隐藏是因为您只有将鼠标悬停在上面时才能看到这些链接。 我通过注入(inject) CSS 规则来解决这个问题(只是说以防万一它不起作用的原因)。

当我尝试通过 xpath 查找元素时,它不想事后单击链接,而且它也找不到所有元素,总是只有 4 个(即使在 View 中显示更多元素)。

HTML:

<a href="#" title="Display">Display</a>

当我在检查中单击确定复制 xpath 时,它会给我:

//*[@id="tiles"]/li[3]/div[2]/ul/li[2]/a

但是当我这样使用它时它不起作用:

driver.find_elements_by_xpath('//*[@id="tiles"]/li[3]/div[2]/ul/li[2]/a')

所以两个问题:

  1. 我如何获得它们?
  2. 如何让它点击它们中的每一个?

XPath 中的模式是相同的,/li[3] 是唯一变化的数字,为此我创建了一个 for 循环以根据页面上的计数创建它们我成功了。

因此,如果可以使用我在检查器中复制 XPath 时对应的我自己生成的 XPath 来完成,那么我只需要回答问题 2。

PS.: 这是第一个 HTML 父级的 HTML:

<li onclick="openPopup(event, 'collect', {item_id: 165214})" class="collect" data-item-id="165214"><a href="#" title="Display">Display</a></li>

最佳答案

这个 XPath,

//a[.="Display"]

将选择 anchor 文本等于"Display" 的所有a 链接。

关于python - Xpath点击根本不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47948225/

相关文章:

java - Selenium 网络驱动程序 : Checking all fonts on a page

python - 如何使 `dict(a_instance_of_a_subclass_of_dict)` 成为 Python 2.7 中的常规字典?

javascript - 在所有浏览器上强制更新缓存

javascript - 如何使用 Javascript :void(0) Selenium? 单击按钮

html - CSS 三色调对 Angular 线背景

javascript - 在 JavaScript 中复制子元素 [Bug]

python - phantomjs 不支持 windows 机器上的 flash 播放器

python - 类型错误 : Object of type 'type' is not JSON serializable

python - 将日期字符串转换为日期时间对象

python - 如何在python中生成但排除某个数字整数中的某个数字