如何使用 Web 驱动程序采样器(J 表)和 javascript 和 selenium wedriver 向上和向下滚动到任何元素

Posted

技术标签:

【中文标题】如何使用 Web 驱动程序采样器(J 表)和 javascript 和 selenium wedriver 向上和向下滚动到任何元素【英文标题】:How to scroll up and down to any element using web driver sampler(J meter) and javascript and selenium wedriver 【发布时间】:2022-01-23 11:27:54 【问题描述】:

如何使用 Webdriver sampler(Jmeter) 和 javascript 和 Selenium Webdriver 上下滚动到任何元素?

var je = js.((JavascriptExecutor) WDS.browser)
var je = new js.((JavascriptExecutor) WDS.browser)
WebElement element = WDS.browser.findElement(org.openqa.selenium.By.xpath("//img[@title='Supersession']");
JavascriptExecutor js = (JavascriptExecutor) driver;
je.executeScript("arguments[0].scrollIntoView(true);",element);

【问题讨论】:

【参考方案1】:
    无需将WDS.browser 转换为JavascriptExecutor 而且你的语法不正确,你可以自己查看jmeter.log file

打开JMeter Components Reference页面并向下滚动到tearDownThreadGroup链接的示例代码:

WDS.sampleResult.sampleStart()
WDS.browser.get('https://jmeter.apache.org/usermanual/component_reference.html')
WDS.log.info('Opened JMeter components reference page')
java.lang.Thread.sleep(3000)
WDS.log.info('Scrolling to bottom')
var tearDownThreadGroupLink = WDS.browser.findElement(org.openqa.selenium.By.xpath("//a[@href='#tearDown_Thread_Group']"))
WDS.browser.executeScript('arguments[0].scrollIntoView(true);', tearDownThreadGroupLink)
java.lang.Thread.sleep(3000)
WDS.sampleResult.sampleEnd()

更多信息:The WebDriver Sampler: Your Top 10 Questions Answered

【讨论】:

非常感谢。 但我仍然收到“无法定位”错误。 var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait) var ui = JavaImporter(org.openqa.selenium.support.ui) //var je = JavaImporter(org.openqa .selenium.JavascriptExecutor) var wait1 = new support_ui.WebDriverWait(WDS.browser, $wait) var timeunit = java.util.concurrent.TimeUnit; WDS.sampleResult.sampleStart() WDS.browser.manage().timeouts().implicitlyWait($wait,timeunit.SECONDS); var Supicon = WDS.browser.findElement(org.openqa.selenium.By.xpath("//img[@title='Supersession'][1]")); WDS.browser.executeScript('arguments[0].scrollIntoView(true);', Supicon); WDS.browser.findElement(org.openqa.selenium.By.xpath("//img[@title='Supersession'][1]")).click(); //java.lang.Thread.sleep(5000); WDS.sampleResult.sampleEnd() 我们如何使用 Action 类来执行此操作?

以上是关于如何使用 Web 驱动程序采样器(J 表)和 javascript 和 selenium wedriver 向上和向下滚动到任何元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在jmeter中为java采样器请求生成多个登录用户

WDS如何使用其他采样器的变量?

如何在jmeter tcp采样器中发送多个十六进制数据有效负载?

如何在 JMeter 的 Webdriver Sampler 中使用 Selenium

如何防止代码/程序访问 Web 应用程序?

如何对从 C# 应用程序中退出的指令进行采样