groovy 无法使用Selenium WebDriver在Jmeter中找到等待条件的匹配构造函数

ogq8wdun  于 2023-06-28  发布在  其他
关注(0)|答案(1)|浏览(146)
import org.openqa.selenium.*;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

//var wait = new WebDriverWait(WDS.browser, 5000)
//var wait = new org.openqa.selenium.support.ui.WebDriverWait(WDS.browser,    Java.time.Duration.ofSeconds(60))
    WDS.sampleResult.sampleStart()
    WDS.browser.get(url)
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.id('idSIButton9')));
    var nextbtn=WDS.browser.findElement(By.id('idSIButton9'));
    nextbtn.click();

    WDS.sampleResult.sampleEnd()

我希望它能在不出错的情况下运行。但它给了我下面的错误给长整型变量的错误。哪个构造函数将与新版本匹配?enter image description here

javax.script.ScriptException: javax.script.ScriptException: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: org.openqa.selenium.support.ui.WebDriverWait(org.openqa.selenium.chrome.ChromeDriver, Long)
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:158)
at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
at com.googlecode.jmeter.plugins.webdriver.sampler.WebDriverSampler.sample(WebDriverSampler.java:101)
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:638)
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558)
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256)
at java.base/java.lang.Thread.run(Thread.java:1623)

这是我用Jmeter编写的示例代码。等待条件的注解变量出错。我试了两种方法。它给出了两种等待条件的错误。可能存在兼容性问题。作为其新版本的jmeter。只有等待条件给出错误。我正在使用所有更新版本。Jmeter版本是5.5。所有其他的插件也都更新了。如果在等待条件上提供任何输入,将很有帮助。它是用Groovy语言写的,尝试了所有的方法。Mothing正在等待条件下工作。

hvvq6cgz

hvvq6cgz1#

查看JMeter安装的“lib”文件夹并查找selenium-*库。它应该包含版本。然后检查Selenium JavaDoc以获取特定的版本。
如果您通过WebDriver Sampler插件获得了Selenium库,则当前版本4.9.1.0基于Selenium 4.9.1.0,并且API合约规定第二个参数不应为Long,而应为Duration
因此,等效的“新”代码应该是这样的:

var wait = new org.openqa.selenium.support.ui.WebDriverWait(WDS.browser, java.time.Duration.ofMillis(5000))

有关JMeter中Groovy脚本的更多信息:Apache Groovy: What Is Groovy Used For?

相关问题