JMeter WebDriver - 无法识别元素

问题描述 投票:0回答:1

我有一个采样器如下:

import org.openqa.selenium.*
import org.openqa.selenium.support.ui.*
import java.time.*

def user = WDS.browser.findElement(By.id('loginUserName'))
user.sendKeys('adminstafftest1')

def pass = WDS.browser.findElement(By.id('loginPassword'))
pass.sendKeys('STuser1225')

def login = WDS.browser.findElement(By.id('loginSubmit'))
def wait = new WebDriverWait(WDS.browser, Duration.ofSeconds(300))
WDS.sampleResult.sampleStart()
login.click()
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector('main-
body.application-unavailable')))
WDS.sampleResult.sampleEnd()

点击登录按钮后,需要等待设置按钮出现。然后,点击它。

但是,我无法使脚本按预期工作。即单击登录按钮后,我的脚本只是超时并抛出错误。

附上屏幕截图。

我尝试过

wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector('main-body.application-unavailable')))

wait.until(ExpectedConditions.elementToBeClickable(By.id('settingsButton')))

但它们没有什么区别。我在这里错过了什么吗?

请帮忙。感谢您的支持。

问候,

jmeter performance-testing
1个回答
0
投票

你的

By.id('settingsButton')
选择器很好,Selenium找不到它的原因可能是:

  1. 该元素位于 iframe 中。在这种情况下,您需要先调用 WebDriver.switchTo() 函数
  2. 该元素位于 Shadow DOM 中。在这种情况下,您需要首先找到相关的 ShadowRoot 节点,然后找到相对于影子 DOM 子树的元素

如果您需要全面的帮助,您需要提供页面源代码,最好是完整的,因为我们无法通过查看部分屏幕截图来猜测原因。页面源可以使用 浏览器开发工具 或调用 WebDriver.getPageSource() 函数

获取
© www.soinside.com 2019 - 2024. All rights reserved.