我写在硒的自动测试和我与定位器的一个问题。网站地址:https://talixo.pl/register/?next=/。我找不到最后三个复选框的正确定位器。根据该定位器我用,我得到一个错误“元素不相互作用或复选框被选中,但在新标签页中打开它链接‘阅读更多’下的页面。我没有这个问题,不复选框“更多”链接,请帮助!
public void clickDiscountsCheckBox(){
WebElement discountsCheckBox = driver
.findElement(By.xpath("//*[@id=\"id_terms_0\"]"));
discountsCheckBox.click();
这是我遇到的错误:
org.openqa.selenium.ElementNotVisibleException:元素不可交互 (会议信息:chrome = 71.0.3578.98) (驱动程序信息:chromedriver = 2.45.615291(ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform = Windows NT 10.0.17134 x86_64)(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:0毫秒
答案 0 :(得分:0)
我转到提供的URL,然后观察到要单击的最后三个复选框是“ :: before”,这是一个伪元素。您是否尝试过JavascriptExecutor?您可以尝试使用CSSSelector识别元素。
答案 1 :(得分:0)
尝试一下。这应该可行。
driver.get("https://talixo.pl/register/?next=/");
Thread.sleep(4000);
List<WebElement> listOfElements =
driver.findElements(By.xpath("//span[@class='label-body']"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
for (int i=0; i<listOfElements.size();i++){
executor.executeScript("arguments[0].click();",listOfElements.get(i));
}
请让我知道是否可行。