Selenium webdriver 如何在Jmeter中使用webdriver采样器的javascript执行器

Selenium webdriver 如何在Jmeter中使用webdriver采样器的javascript执行器,selenium-webdriver,jmeter,jmeter-plugins,Selenium Webdriver,Jmeter,Jmeter Plugins,我需要在Jmeter中为webdriver采样器使用下面的javascript执行器行 WebElement el1=driver.findElement(By.xpath(“//div/button/span[contains(text(),'View Report')]”); JavascriptExecutor Executor 1=(JavascriptExecutor)驱动程序; Execute1.executeScript(“参数[0]。单击()”,el1) 我试图使用下面的行,但在

我需要在Jmeter中为webdriver采样器使用下面的javascript执行器行

WebElement el1=driver.findElement(By.xpath(“//div/button/span[contains(text(),'View Report')]”); JavascriptExecutor Executor 1=(JavascriptExecutor)驱动程序; Execute1.executeScript(“参数[0]。单击()”,el1)

我试图使用下面的行,但在日志中得到下面的错误消息 var btnView=pkg.By.xpath(“//div/button/span[contains(text(),'View Report')]”); WDS.browser.executeScript(“document.getElementByXpath(参数[0])。单击();”,btnView) 错误消息: 错误-com.googlecode.jmeter.plugins.webdriver.sampler.WebDriverSampler:参数的类型非法:org.openqa.selenium.By$ByXPath

有没有办法在Webdriver Sampler中使用javascript executor

  • 您不需要将此强制转换为JavascriptExecutor
  • 您不需要此
    参数[0]。单击()就足够了,不需要重新定位元素,而且
    document.getElementByXpath
    当前不受
  • 因此,请修改您的代码如下:

    var btnView = WDS.browser.findElement(pkg.By.xpath("//div/button/span[contains( text(),'View Report')]"))
    WDS.browser.executeScript("arguments[0].click();", btnView) 
    

    有关更多WebDriver采样器提示和技巧,请参阅文章

    请花一分钟将代码正确格式化为代码并格式化错误消息。如果您不确定如何进行格式化,请参阅有关格式化的帮助。这不适用于WebDriver采样器(而不是Javascript)的Java实现。错误信息“在org.openqa.selenium.chrome.ChromeDriver类中找不到executeScript(java.lang.String,java.lang.String)”不确定WebDriver插件为什么试图将executeScript方法映射到ChromeDriver,而不是映射到org.openqa.selenium.Javascriptexecutor类。有解决方案吗?在使用Java实现时,我遇到了@GordonFreaman提到的相同错误。当您在“脚本语言”下拉列表中选择
    Java
    时,它不是一个真正的Java,它是一个具有稍微不同语法和一些性能约束的解释器。我建议切换到
    Groovy
    language——它更符合Java,并且在上面有一些很好的特性,请查看更多详细信息