如何在Jmeter 的Javascript 中实现mouseover 事件?

How to implement mouseover event in Javascript inside of Jmeter?

我正在 Jmeter 中使用 WebDriver Sampler 插件编写负载测试。 我的鼠标悬停功能有问题。我已经尝试了很多我在 Whosebug 和类似网站上找到的 solutions/fixes 但 none 有效。 我认为将 jquery 库导入脚本可以解决我的问题,或者创建 javascript 鼠标悬停事件。

WDS.sampleResult.sampleStart()

var logowanieMenu = WDS.browser.findElement(pkg.By.id('ctl00_MainMenun0'))

logowanieMenu.mouseover()

WDS.sampleResult.sampleEnd()

java.lang.Thread.sleep(800)

WDS.sampleResult.sampleStart()

var logowanieMenu = $('#ctl00_MainMenun0')

logowanieMenu.mouseover()

WDS.sampleResult.sampleEnd()

java.lang.Thread.sleep(800)

我也试过 logowanieMenu.hover()logowanieMenu.focus()

的组合

我想完成一个 "hover mouse" 元素的事件。

WebElement class 中没有定义 mouseover 函数,我的预期是您的测试在您调用它的那一行失败了。

我认为您需要特别使用 Actions class in general and moveToElement() 函数,例如:

var actions = new org.openqa.selenium.interactions.Actions(WDS.browser)
actions.moveToElement(logowanieMenu).perform()

用于演示目的的示例代码:

WDS.sampleResult.sampleStart()
WDS.browser.get('http://jmeter.apache.org/')
var overview = WDS.browser.findElementByLinkText('Overview')
var actions = new org.openqa.selenium.interactions.Actions(WDS.browser)
java.lang.Thread.sleep(1000)
actions.moveToElement(overview).perform()
java.lang.Thread.sleep(1000)
var license = WDS.browser.findElementByLinkText('License')
actions.moveToElement(license).perform()
java.lang.Thread.sleep(1000)
WDS.sampleResult.sampleEnd()

如果你 运行 它你会看到第一个 Overview link 变暗,一秒钟后变回红色 License link变暗。

查看 The WebDriver Sampler: Your Top 10 Questions Answered 以了解有关 WebDriver Sampler 提示和技巧的更多信息。