如何解决Jmeter中的WebDriver Sampler - 切换到新窗口,在对话框中允许麦克风和摄像头,执行操作,关闭新窗口,返回初始窗口
我正在 JavaScript 上的 Jmeter 中使用 WebDriver Sampler 处理以下场景:
-
在主窗口中执行多个请求;
-
对于 1 个特定交易:
2.1. - 从初始窗口切换到新创建的窗口(两个窗口的标题相同),
2.2. - 允许麦克风和摄像头(新窗口打开后会出现浏览器对话框并阻止某些页面元素的活动,直到不允许摄像头和麦克风),
2.3. - 在页面上查找元素并对其执行操作(我为此编写了 javascript 片段),
2.4. - 关闭第二个窗口;
-
返回初始主窗口;
-
在主窗口中处理请求。
对于第 1 步和第 4 步,我需要的都是 js 代码。
对于 step3,我想使用解决方案:
//切换回初始主窗口:
WDS.browser.switchTo().defaultContent();
但我仍然使用 2.1 和 2.2。
2.1、2.2 和 2.4 的最佳解决方案是什么?
对于 2.2。我尝试在 Firefox WebDriver 配置中使用“设置首选项”部分并使用以下内容填充它:
缺点: 第一 - 不幸的是,它不起作用,第二 - 我需要这些首选项与 Chrome 一起使用,而不仅仅是在 FF 中。
你能提供有用的提示吗,2.1、2.2、2.4?
解决方法
我不认为此模式弹出窗口是可由 WebDriver 控制的“窗口”,它是操作系统的本机窗口,因此您将无法使用 WebDriver 函数与其交互,选项位于:
-
使用 java.awt.Robot 类模拟键盘输入
-
使用底层操作系统方法定位窗口并向其发送相应的消息,入口点为JNI
-
在浏览器启动级别抑制这些弹出窗口:
-
对于 Firefox,您可以load a custom profile 允许您正在测试的网站使用摄像头和麦克风
-
对于 Chromium 和衍生产品,您可以设置以下 ChromeOptions
use-fake-ui-for-media-stream
use-fake-device-for-media-stream
遗憾的是,Firefox Driver Config 和 Chrome Driver Config 这两种方法都不是开箱即用的,因此您必须切换到 JSR223 Sampler and Groovy language 来实现您的测试场景
-
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。