javascript - 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。
这可能吗?有哪些可用的解决方法?
解决方案
推荐阅读
- javascript - 将默认道具样式与内联样式相结合
- android - 如何使用连续动态旋转角度值在android中使用opengl旋转imageview
- r - Azure ML Studio 中的 R 版本问题
- php - 从 mysql 查询特定的 JSON 键值
- oracle - 如何用生产服务器中的另一个表替换 QA 服务器中的表?
- scala - 用自己的编解码器包装 circe 解码器(隐式)
- matlab - 不符合 3-d 矩阵和向量的参数
- java - 使用 feignclient 访问 HTTPS url 时的证书路径问题
- database-design - 如何设计数据库模式来存储文章某些部分的评论?
- powershell - 过滤/删除 CSV 文件的最后一列