首页 > 解决方案 > Selenium - 如何在通过 javascript 呈现页面时通过 xpath 查找和单击元素

问题描述

问题: 我试图找到一个元素,然后使用 selenium 和 python 通过 xpath 在使用 JavaScript 呈现的网页上单击它。xpath 已被确认是正确的,问题是由于只看到 javascript“顶级”(我认为这是正确的术语),html 没有完全呈现。

我已经看到了查找完整的 html 代码并将其保存为字符串的方法,但这不能通过 selenium 点击

我在寻找什么: 一种只呈现所有 javascript 代码的方法,这样我就可以访问我正在寻找的 html 元素。

代码看起来像:

browser.render_javascript()
browser.find_element_by_xpath("//span[text()='Budget & Cost Management']/../preceding-sibling::img[2]").click()

目前,如果我试图找到上面的 xpath,它说它不存在。但是,如果我检查页面并搜索此 xpath,它会将我带到元素。显然,selenium 没有看到这个元素,因为它不可用(未渲染或执行,不确定哪个是正确的术语)。

我还尝试在搜索此元素之前等待 30 秒,但看起来任何时间都不会将页面呈现为 selenium。

这可能吗?有哪些可用的解决方法?

标签: javascriptpythonhtmlseleniumxpath

解决方案


推荐阅读