如何使用java在selenium web驱动程序中逐个检查所有复选框?

时间:2016-11-26 05:03:20

标签: java selenium xpath selenium-webdriver selenium-firefoxdriver

我正在使用下面的代码,测试用例没有失败,但代码没有检查复选框。

auth.signInAnonymously().then(user => {
  console.log('signed in');
  ref.on('value', 
    snapshot => console.log('got value: '+snapshot.val()),
    error => console.error(error)
  );
  setTimeout(
    () => auth.signOut().then(() => console.log('signed out')), 
    5000);
});

Test Case is not failing Xptha and the elements

enter image description here

2 个答案:

答案 0 :(得分:1)

您正在使用的定位器可能导致问题尝试使用以下内容:

//div[@class='ng-scope flex-20']//following::md-checkbox**[@role='checkbox']**

如果md-checkbox标识的所有元素都是复选框,则可以省略星号中的部分。

以下代码在另一个案例中为我工作:

List<WebElement> checkboxes = driver.findElements(By.xpath("//div[@class='control-group']//following::input[@type='checkbox']"));
        for(WebElement check:checkboxes){
            check.click();
        }

答案 1 :(得分:0)

添加一些等待其工作

@Test(priority=11)
public void Test_CheckBox_Check()throws InterruptedException {

    Thread.sleep(2000);

    List<WebElement> els = driver.findElements(By.xpath("//md-checkbox/div/div[@class='md-icon']"));
    System.out.println(Integer.toString(els.size()));
    for ( WebElement el : els ) {

        Thread.sleep(2000);

        el.click();

         System.out.println(el.getText());
         driver.findElement(By.xpath("//div[@class='col-xs-1']")).click();

    }