如何找到合适的复选框定位器

问题描述 投票:-1回答:2

我写在硒的自动测试,我有与定位的问题。网站地址:https://talixo.pl/register/?next=/。我无法找到合适的定位在过去的三个复选框。根据我使用的定位,我得到一个错误“元素不相互作用或复选框被选中,但在新标签页中打开它链接‘更多’下的页面。我没有这个问题,不复选框“更多”链接请帮助!

public void clickDiscountsCheckBox(){
        WebElement discountsCheckBox = driver
                                       .findElement(By.xpath("//*[@id=\"id_terms_0\"]"));
        discountsCheckBox.click();

这里是我得到的错误:

org.openqa.selenium.ElementNotVisibleException:元素没有交互(会话信息:铬= 71.0.3578.98)(驱动程序信息:chromedriver = 2.45.615291(ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),平台= Windows NT的10.0.17134 x86_64的)(警告:服务器未提供任何堆栈跟踪信息)命令的持续时间或超时:0毫秒

java selenium checkbox
2个回答
0
投票

尝试this.This应该工作。

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));               
              }

请让我知道这工作。


0
投票

我去提供的网址,并指出,在过去三个复选框点击的是“::之前”,这是一个伪元素。您是否尝试过JavascriptExecutor?您可以尝试使用CSSSelector识别元素。

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