通过cssSelector在JAVA(Selenium)中进行findElement的循环

时间:2019-07-02 09:32:46

标签: java selenium css-selectors

我想使用for循环,以便从第1个复选框(第4个复选框)中单击它们以进行自动化测试。

webdriver.findElement(By.cssSelector("#mat-checkbox-1 .mat-checkbox-inner-container")).click();
webdriver.findElement(By.cssSelector("#mat-checkbox-2 .mat-checkbox-inner-container")).click();
webdriver.findElement(By.cssSelector("#mat-checkbox-3 .mat-checkbox-inner-container")).click();
webdriver.findElement(By.cssSelector("#mat-checkbox-4 .mat-checkbox-inner-container")).click();

我已经尝试了下面的代码,但是仍然无法正常工作。

for(int i=1; i>=4; i++){
webdriver.findElement(By.cssSelector("#mat-checkbox-"+i+".mat-checkbox-inner-container")).click();
}

1 个答案:

答案 0 :(得分:4)

首先,您的循环不正确。第二个条件是关于循环何时应运行,并且由于您将其设为i>=4并从i=1开始,因此它将永远不会运行。另外,您应使用;分隔条件,因此您的情况下正确的for循环应为:for(int i = 1; i <= 4; i++){...}。最后,您忘记了.mat-checkbox-..部分之前的空白。正确的代码应如下所示:

for(int i = 1; i <= 4; i++){
    webdriver.findElement(By.cssSelector("#mat-checkbox-"+i+" .mat-checkbox-inner-container")).click();
}