selenium - 使用 RobotFramework 从内联 JS 脚本标签中提取值
问题描述
有一些内联 JS 在我们网站的顶部运行。它包含一些从网页中提取的名称值对。我正在使用机器人框架编写测试来断言这些存在并具有价值。JS 的一小段摘录如下所示:
siteId':'1133','offerId':'1228','productId':'549','
我可以使用 xpath 定位器断言名称的存在,如下所示
page should contain
element xpath=/html/head/script[contains(text(),"siteId")]
使用机器人框架和 Selenium 库,我使用page should contain element
关键字断言名称存在,并且效果很好。
现在我需要提取值,所以在上面的例子中是 '1133'。
我一直在使用get element attribute
在 DOM 中其他位置获取值时效果很好的关键字。但似乎不适用于这种情况。我不断获得none
价值。
我的 xpath 可能需要以不同的方式编写才能从中提取值,但我不确定。
非常感谢所有帮助或想法。
解决方案
您应该能够通过获取innerHTML
属性的值来获取脚本标签的内容。参考
我不熟悉机器人框架,但根据您提供的信息,我怀疑使用get element attribute
withinnerHTML
会将脚本标签的内容作为字符串返回,然后您可以使用正则表达式进行匹配。
推荐阅读
- c++ - 如何安全地终止线程?(使用指针)C++
- c++ - C++ 中用户定义的构造函数的问题
- ios - Pod 安装在 react-native mac os catalina 10.15 中不起作用
- python - cv2.perspectiveTransform 的负坐标是什么意思?
- cucumber - Cucumber中不同页面对象的常用方法
- sql - SQL Server 中带参数的前 N 条记录显示错误
- python - SyntaxError:“等待”外部函数
- php - 使用 bitnami wapp 时我们应该在哪里保存我们的 html 和 php 文件?
- javascript - 通过控制台查找孩子的父属性
- java - spring boot:如何动态设置弹簧属性