首页 > 解决方案 > 无法使用 java 在 Selenium Webdriver 中选择复选框

问题描述

我正在尝试选择一个复选框,但我无法也没有在其他线程中找到任何解决方案。

这是我的下拉列表的 HTML 代码: 在此处输入图像描述

代码:@FindBy(css="input.ng-valid.ng-dirty.ng-touched") WebElement chrgAllocFee;

chrgAllocFee.click();

但是当我以相同的方式定义和使用其他复选框时,它不起作用。我发现与其他人相比的不同之处在于,这里的 html 代码有额外的一行

请建议如何定义以便可以识别它。

错误获取: org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“method”:“css selector”,“selector”:“input.ng-valid.ng-dirty.ng-touched”} (会话信息:chrome=69.0.3497.92)

标签: javaseleniumselenium-webdriverxpathcss-selectors

解决方案


所需的元素是Angular元素,因此您必须诱导WebDriverWait元素可点击,您可以使用以下任一解决方案:

  • cssSelector

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.ng-valid.ng-dirty.ng-touched[name='ChargeAllocationFee']"))).click();
    
  • xpath

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='ng-valid ng-dirty ng-touched' and @name='ChargeAllocationFee']"))).click();
    

推荐阅读