显式等待在jmeter webdriver采样器中无效

wnvonmuf  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(143)

下面是我的代码。当我从代码中删除等待命令时,它运行良好,但当我在下面的代码中添加等待时,它开始显示错误,如:javax.script.ScriptException:类型错误:null在jdk.nashorn.api.脚本中的第13行没有这样的函数“可见性元素位置”。jdk.nashorn.API.脚本中的nashornScriptEngine.throwAsScriptException(nashornScriptEngine. java:470)。jdk.nashorn.api.脚本中的nashornScriptEngine.evalImpl(nashornScriptEngine. java:454)。jdk. nashorn.api.脚本中的nashornScriptEngine. evalImpl(nashornScriptEngine. java:406)。jdk. nashorn. api.脚本中的nashornScriptEngine.evalImpl(nashornScriptEngine. java:402)。javax.脚本中的nashornScriptEngine.eval(nashornScript. java:155)。抽象脚本引擎.eval未知(源代码)
代码- WDS.样品结果.样品开始()变量搜索1 = WDS.args[0]变量包= Java导入程序(org.openqa.selenium)//导入Java selenium 包import java selenium package变量支持_ui=JavaImporter(组织.openqa. selenium 元素.支持.ui.网络驱动程序等待)import webdriver变量ui= Java导入程序(org.openqa.selenium.support.ui)变量等待=新的支持用户界面. Web驱动程序等待(WDS浏览器,java.时间.持续时间.秒(120))变量时间单位= java.实用程序.并发.时间单位WDS.浏览器.查找元素(org.openqa.selenium.通过.xpath(“//输入[@占位符='搜索']”)).清除()WDS.浏览器.查找元素(org.openqa.selenium.通过.xpath(“//输入[@占位符='搜索']”)).发送密钥(搜索1)WDS.浏览器.查找元素(org.openqa.selenium.通过.xpath(“//td/img[@id ='搜索']”)).点击()等待.直到(pkg.预期条件.元素可见性定位(组织.开放qa. selenium .通过.xpath(“//td[文本()=”224“和@类=”SwsCount“]”)))This wait command is not working WDS.样本结果.样本结束()
我希望在webdriver采样器中使用显式等待。我使用的是apache-jmeter 5.5版本

xtfmy6hx

xtfmy6hx1#

您的代码不可读,因此我们无法提供一个全面的答案。
此错误:
null没有这样的函数“visibilityOfElementLocated”
意味着(最有可能)您的pgk.ExpectedConditionsnull,因此我建议您重新访问代码并检查定义此pkg变量的位置。
显示如何在WebDriver Sampler中使用显式等待和JavaScript的简单代码示例:

WDS.sampleResult.sampleStart()
WDS.browser.get('https://duckduckgo.com')

var wait = new org.openqa.selenium.support.ui.WebDriverWait(WDS.browser, java.time.Duration.ofSeconds(5))
var by = org.openqa.selenium.By.id("search_form_input_homepage")
var condition = org.openqa.selenium.support.ui.ExpectedConditions.presenceOfElementLocated(by)
var element = wait.until(condition)

element.sendKeys('jmeter')

element.submit()

WDS.sampleResult.sampleEnd()

还要注意的是,您的方法不像Nashorn engine has been removed from JDK 15那样经得起未来考验,因此您将无法在较新版本的Java中使用javascript。最好考虑迁移到Groovy language,而且这是自JMeter 3.1以来推荐的脚本选项

相关问题