WebDriver.getAccessibleName()在使用 selenium 元素时抛出StaleElement异常

58wvjzkj  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(159)

我有一个简单的<a>元素,它在iframe中。我想单击它,如果我首先尝试使用getAccessibleName()方法,然后单击它,我得到StaleElementReferenceException。如果我尝试直接单击该元素,没有任何问题。同时,我可以使用getText()getLocation()等方法,但是如果我尝试调用getAccessibleName(),就会出现未知错误,代码是 32000,之后元素就会失效,不能再使用。
问题出在哪里?为什么这个方法会出现这样的错误?我正在使用这个方法来创建类似于测试执行的详细报告的东西,这对我来说很重要。我没有任何其他问题,我一直在使用这个方法,这是第一个出现错误的案例?如果其他人有这样的问题,请让我知道,我将感谢所有的评论和建议。

nqwrtyyt

nqwrtyyt1#

一个月一个月

getAccessibleName()获取WebElement的可访问名称的可访问名称和说明计算结果。
理想情况下,在提取 * Accessible Name * 之前,必须为visibilityOfElementLocated()引入WebDriverWait,您可以使用以下解决方案:

driver.get("https://www.selenium.dev/");
System.out.println(new WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h2[text()='Getting Started']"))).getAccessibleName());

控制台输出:

Getting Started

相关问题