JMeter Selenium WebDriver Groovy脚本验证加载器遇wait未定义错误求助
问题解决建议
错误原因
报错MissingPropertyException: No such property: wait是因为直接使用了wait对象,但未先初始化WebDriverWait实例——JMeter的Groovy脚本不会自动创建该对象。另外,当前逻辑存在偏差:你是等待加载器出现,但实际需求应该是等待加载器消失后再执行后续操作。
修正步骤及代码
- 通过JMeter内置的
WDS对象获取当前WebDriver实例,初始化WebDriverWait - 将等待条件修正为“等待加载器不可见”
- 修复XPath的引号嵌套语法问题
完整修正代码:
// 初始化WebDriverWait,设置超时时间为10秒(可根据实际加载速度调整) def wait = new org.openqa.selenium.support.ui.WebDriverWait(WDS.driver, 10) // 等待加载器消失,确认页面加载完成 wait.until(org.openqa.selenium.support.ui.ExpectedConditions.invisibilityOfElementLocated( org.openqa.selenium.By.xpath("//*[@class='spinner-border uxf-spinner-border-lg']") )) // 加载完成后打印结果 WDS.log.info("success")
额外优化方案
如果想用更简洁的方式定位加载器,可改用CSS选择器(适配多类名的场景),替换等待条件部分的代码:
wait.until(org.openqa.selenium.support.ui.ExpectedConditions.invisibilityOfElementLocated( org.openqa.selenium.By.cssSelector(".spinner-border.uxf-spinner-border-lg") ))
内容的提问来源于stack exchange,提问作者Kumaran
相关产品推荐
相关产品推荐

