Selenium + Java测试充满了span元素.解决不可点击元素问题的最佳方法



我正在更深入地研究我公司的回归测试。 我们在 span 元素上设置了很多定位器,并结合了 click((,这会导致异常"不可点击元素"。单击跨度有时有效,但并非总是如此。我正在寻找解决我们问题的最佳方法。 1.将每个范围元素更改为按钮。 2. 将测试ID添加到span或父(div(元素 3.添加"actions.moveToElement",但它将在许多地方实现

我的观点对你有意义吗?你有什么建议?

作为一个选项,你可以使用 JavaScript。

WebDriverWait wait = new WebDriverWait(driver, 20);
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click()", wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(""))));

您可以将executeScript放入方法并使用它,以下是通用单击的示例:

public void click(WebDriver driver, WebElement element, boolean withJS){
if (withJS){
((JavascriptExecutor) driver).executeScript("arguments[0].click()", element);
} else {
element.click();
}
}

最新更新