有没有办法在通过硒加载后将一些 js 添加到所有页面中
Is there a way to add some js into all pages after loading via selenium?
我正在努力使用Selenium创建自动化测试。目前,我想在加载后在每个页面/帧中执行一些js代码,以便能够在js中调用一些测试函数。在页面加载后立即执行它并不重要,我只想让它在每个页面上执行。
为了解决这个问题,我编写了自己的WebDriver实现器,它使用委托模式,在调用方法"get"后添加js执行。与我在更改当前帧的 driver.switchTo() 对象的所有方法中添加执行脚本的方式相同。
问题是在单击某些链接/执行某些js代码后页面重新加载的情况。很容易发现在这种情况下,我的脚本不会被执行。
有没有办法使用Selenium WebDriver来覆盖这种行为?
任何想法或技巧都很棒。
你可以让小提琴手在后台运行来代理所有HTTP方法.....在Fiddler,您可以添加一个自定义规则来更改来自服务器的响应(通过插入JS),用于每种特定类型的HTTP调用GET/POST(不包括PNG/IMG等)...我一直这样做..复制难以测试的方案。
我会在服务器端这样做:使用通用servlet扩展所有servlet,该servlet仅在Selenium运行时在js代码之前(在Selenium启动时在服务器上设置静态变量)
我用WebSocket
做了类似的事情。在应用程序中创建 WebSocket 服务器。在初始get
之后,execute_script
打开与服务器的连接。当浏览器移动到新页面时,套接字连接将关闭 - 您可以再次execute_script。整个事情有点复杂,因为您需要检查任何iframe
,如果连接失败等,请重试连接。
我能够使它与Firefox,Chrome很好地工作。也应该与边缘/IE一起使用。
- 向AngularJS目录添加JS变量
- 使用 Razor 添加 JS 代码
- 在运行时添加js文件时出现语法错误
- 如何根据窗口宽度添加js文件
- 在Cordova项目中添加.js会破坏构建过程
- 动态添加 js 到 asp.net 文件
- 添加JS时Tumblr的奇怪行为
- 如何使用 api 修改 bigcommerce 前端(在应用程序中添加 js 代码)
- 是否可以阻止requireJS自动添加.js文件扩展名
- require.js文本插件在文件名中添加“.js”
- 如何在 jquery 中添加 js var
- 在Joomla head上添加JS
- 双击和更新表字段时添加 JS/添加文本框
- 在服务器的html文件中添加.js文件作为源文件
- 在另一个文件中添加JS src
- 最早什么时候可以动态添加JS/CSS并应用它们
- 如何在eclipse中添加JS资源
- 不能添加JS文件,或任何其他,到钛项目文件夹
- ASP.. NET在页面加载时添加js文件
- 如果主体类有类添加js,如果没有添加这个js