微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jmeter中的WebDriver Sampler - 切换到新窗口,在对话框中允许麦克风和摄像头,执行操作,关闭新窗口,返回初始窗口

如何解决Jmeter中的WebDriver Sampler - 切换到新窗口,在对话框中允许麦克风和摄像头,执行操作,关闭新窗口,返回初始窗口

我正在 JavaScript 上的 Jmeter 中使用 WebDriver Sampler 处理以下场景:

  1. 在主窗口中执行多个请求;

  2. 对于 1 个特定交易:

    2.1. - 从初始窗口切换到新创建的窗口(两个窗口的标题相同),

    2.2. - 允许麦克风和摄像头(新窗口打开后会出现浏览器对话框并阻止某些页面元素的活动,直到不允许摄像头和麦克风),

    2.3. - 在页面上查找元素并对其执行操作(我为此编写了 javascript 片段),

    2.4. - 关闭第二个窗口;

  3. 返回初始主窗口;

  4. 在主窗口中处理请求。

对于第 1 步和第 4 步,我需要的都是 js 代码

对于 step3,我想使用解决方案:

//切换回初始主窗口:

WDS.browser.switchTo().defaultContent();

但我仍然使用 2.1 和 2.2。

2.1、2.2 和 2.4 的最佳解决方案是什么?

对于 2.2。我尝试在 Firefox WebDriver 配置中使用“设置首选项”部分并使用以下内容填充它:

enter image description here

缺点: 第一 - 不幸的是,它不起作用,第二 - 我需要这些首选项与 Chrome 一起使用,而不仅仅是在 FF 中。

你能提供有用的提示吗,2.1、2.2、2.4?

解决方法

我不认为此模式弹出窗口是可由 WebDriver 控制的“窗口”,它是操作系统的本机窗口,因此您将无法使用 WebDriver 函数与其交互,选项位于:

  1. 使用 java.awt.Robot 类模拟键盘输入

  2. 使用底层操作系统方法定位窗口并向其发送相应的消息,入口点为JNI

  3. 在浏览器启动级别抑制这些弹出窗口:

    • 对于 Firefox,您可以load a custom profile 允许您正在测试的网站使用摄像头和麦克风

    • 对于 Chromium 和衍生产品,您可以设置以下 ChromeOptions

      • use-fake-ui-for-media-stream
      • use-fake-device-for-media-stream

    遗憾的是,Firefox Driver ConfigChrome Driver Config 这两种方法都不是开箱即用的,因此您必须切换到 JSR223 Sampler and Groovy language 来实现您的测试场景

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。