Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jmeter WebDriver采样器无法映射列表<;WebElement>;到driver.findElements(定位器)方法 Jmeter版本4.0 r1823414 Selenium/WebDriver支持插件版本2.3 java版本1.8.0_161_Java_List_Plugins_Jmeter - Fatal编程技术网

Jmeter WebDriver采样器无法映射列表<;WebElement>;到driver.findElements(定位器)方法 Jmeter版本4.0 r1823414 Selenium/WebDriver支持插件版本2.3 java版本1.8.0_161

Jmeter WebDriver采样器无法映射列表<;WebElement>;到driver.findElements(定位器)方法 Jmeter版本4.0 r1823414 Selenium/WebDriver支持插件版本2.3 java版本1.8.0_161,java,list,plugins,jmeter,Java,List,Plugins,Jmeter,在使用JMeterWebDriver采样器时,它所能做的事情(快速创建用于UI/性能测试的脚本)给我留下了深刻的印象。然而,我无法利用List(来自java.util)界面在页面上查找多个web元素。正如每个WebDriver插件教程中所建议的那样,我导入了必要的名称空间java.util.*和java.lang.util.* 日志查看器中出现错误 messageERROR c.g.j.p.w.s.WebDriverSampler:在文件中:内联计算:`import java.util。;导入j

在使用JMeterWebDriver采样器时,它所能做的事情(快速创建用于UI/性能测试的脚本)给我留下了深刻的印象。然而,我无法利用
List
(来自
java.util
)界面在页面上查找多个web元素。正如每个WebDriver插件教程中所建议的那样,我导入了必要的名称空间
java.util.*
java.lang.util.*

日志查看器中出现错误

messageERROR c.g.j.p.w.s.WebDriverSampler:在文件中:内联计算:`import java.util。;导入java.lang。;导入org.openqa.selenium.*;导入组织…“”在第57行第38列遇到“=”

我的第57行是这样的

List<WebElement> deleteLinks = WDS.browser.findElements(By.xpath("${myEnumeratorDeclaredVariable}"));
List deleteLinks=WDS.browser.findelelements(By.xpath(${myEnumeratorDeclaredVariable}));
根据方法
findelelements(By)
的签名是
java.util.List
,我今天的问题是:WebDriver sampler插件是否有任何专门设计的限制,禁止使用本机java世界中的某些接口和类

我可以像往常一样在采样器中创建类和方法吗?请在遇到这些问题之前通知他人


p.S.Dmitri的回答被接受。请阅读他回答下面的评论。如果您计划使用Java作为WebDriver sampler的编程语言,请注意它是对Java的BeanShell解释,而不是普通Java本身。要了解该语言的更多现代功能(版本6、7和8),请选择groovy,因为它支持99%的现代Java代码

如果使用最新版本的Webdriver Sampler,则需要选择Groovy才能使用所使用的语法

否则,默认情况下它将使用Javascript Rhino


如果问题仍然存在,请显示所有代码。

取决于您使用的语言:

  • 对于默认JavaScript,您需要使用如下JavaScript语法:

    var deleteLinks = WDS.browser.findElements(org.openqa.selenium.By.xpath("${myEnumeratorDeclaredVariable}"));
    
    演示:

  • 在Java的情况下,您不会得到“香草”Java,您会得到不支持的解释器,因此您需要删除它,如:

    List deleteLinks = WDS.browser.findElements(org.openqa.selenium.By.xpath("${myEnumeratorDeclaredVariable}"));
    

  • 不要在脚本中引用JMeter函数和/或变量,如
    “${myEnumeratorDeclaredVariable}”
    ,而应选择
    WDS.vars
    ,如:

    List deleteLinks = WDS.browser.findElements(org.openqa.selenium.By.xpath(WDS.vars.get("myEnumeratorDeclaredVariable")));
    

  • 更多信息:

    为什么要否决投票?谢谢Dmitri,我对它说的话感到困惑BeanShell理解标准Java语句、表达式和方法声明。语句和表达式都是Java方法中常见的东西,比如变量声明和赋值、方法调用、循环和条件。“所以我想我可以很容易地使用菱形操作符和循环。但似乎这两个版本都不能在WebDriver sampler脚本窗口中使用。Beanshell于2005年发布,因此它几乎支持JavaSE5.0中的所有内容。Diamond操作符于2011年在Java 7中引入,因此Beanshell不支持它。如果您想使用现代java特性,考虑切换到完全支持基本JVM语法的方法,并在其上感谢德米特里的支持。在这些行中,“99%的情况下有效的Java代码将是有效的Groovy代码”。这是否意味着我可以在WebDriver采样器中创建类和方法?我可能低估了Groovy作为一种选择,因为我认为这是一种完全不同的编程语言,通常需要一段时间才能熟悉。感谢对Dmitri的支持。正如您所建议的,我在Jmeter中选择了Groovy脚本语言类型,创建了一个包含大量方法的类,并在尝试运行该类时收到了“WebDriverSampler:unknown protocol:data”错误消息。我的类结构是典型的Java类,上面是导入语句,下面是类声明,类字段声明和方法与往常一样。你知道这个错误消息可能意味着什么吗?谢谢你的支持。