JMeter:如何使用WebDriver采样器在Java中切换选项卡

JMeter:如何使用WebDriver采样器在Java中切换选项卡,jmeter,jmeter-plugins,Jmeter,Jmeter Plugins,我正在使用以下代码: ArrayList<String> tabs2 = new ArrayList<String> (WDS.browser.getWindowHandles()); WDS.browser.switchTo().window(tabs2.get(1)); 请提供帮助。您使用的是一个非常过时的脚本引擎,它不支持Java 7中引入的脚本引擎,beanshell和bsh停留在Java 5语言级别,因此您将无法使用现代语言功能 您有以下选项: 删除菱形操作符

我正在使用以下代码:

ArrayList<String> tabs2 = new ArrayList<String> (WDS.browser.getWindowHandles());
WDS.browser.switchTo().window(tabs2.get(1));

请提供帮助。

您使用的是一个非常过时的脚本引擎,它不支持Java 7中引入的脚本引擎,
beanshell
bsh
停留在Java 5语言级别,因此您将无法使用现代语言功能

您有以下选项:

  • 删除菱形操作符,如:

    ArrayList tabs2 = new ArrayList (WDS.browser.getWindowHandles());
    
  • 切换到脚本引擎。Groovy更符合Java,99%的情况下有效的Java代码都是有效的Groovy代码,这样类似的问题就会消失。此外,Groovy的性能要好得多,对于WebDriver Sampler来说,它并不重要,但对于其他脚本任务来说,它是至关重要的。有关更多详细信息,请参阅
    谢谢你的建议,德米特里。明天我会试试选项1。我不想切换到Groovy。关键是在JMeter中重用Java WebDriver脚本。通过切换到另一种语言,我们需要从头开始重新编写所有内容。正如您遇到的错误所证明的,在“脚本语言”下拉列表中选择
    java
    ,实际上并不意味着“java”,而是由BSH脚本引擎解释,因此我建议尝试Groovy,最有可能的情况是,您不必更改任何一行代码,它将开始工作。另外,请注意,如果您的硒测试再次使用Thank you,Dmitri进行开发,您可以使用sampler。我知道JUnit请求采样器,但我认为专门的WebDriver采样器可能更好。你推荐哪一个?另外,当我在JUnit请求采样器中将ChromeDriver替换为HtmlUnitDriver时,一些元素不再可识别。
    ArrayList tabs2 = new ArrayList (WDS.browser.getWindowHandles());