自动多次点击按钮,直到出现结果

时间:2018-02-21 18:52:54

标签: java eclipse selenium

你好我想在一个按钮上执行5次以上的clcik,直到我收到消息,但我不想以传统的方式做到有角度形状JS

driver.findElement (By.linkText ("Examples")). click ();
driver.findElement (By.xpath ("// button [@ type = 'button']")). click ();
driver.findElement (By.xpath ("// button [@ type = 'button']")). click ();
driver.findElement (By.xpath ("// button [@ type = 'button']")). click ();
driver.findElement (By.xpath ("// button [@ type = 'button']")). click ();
driver.findElement (By.xpath ("// button [@ type = 'button']")). click ();
  driver.findElement (By.xpath ("// h1 [2]"));

3 个答案:

答案 0 :(得分:0)

你可以这样做。

driver.findElement (By.linkText ("Examples")). click ();
while(true){
driver.findElement (By.xpath ("// button [@ type = 'button']")). click ();
int count=  driver.findElements (By.xpath ("// h1 [2]")).size();
if(count>0){
break;
}
}

代码说明: while循环将始终继续。在每次迭代中,我们点击按钮并检查h1元素是否可用。如果找到该元素,则循环将终止。 为了检查元素状态,我们使用了driver.findelments方法,这将返回web元素列表,我们正在计算。

试试这段代码,让我知道结果。

答案 1 :(得分:0)

以前的解决方案和此应用

    WebElement buton = element(By.xpath("//button[@type='button']"));
    boolean isPresent = 
 isElementVisible(By.xpath("/html/body/div[3]/div/div[1]/h1"));

    for (int i = 1; i > 0; ++i) {
        buton.click();
        System.out.println("Mensaje");

        if (isPresent == true) {
            System.out.println("Mensaje ");
            break;
        }

        isPresent = isElementVisible(By.xpath("/html/body/div[3]/div/div[1]/h1"));
    }

}

答案 2 :(得分:0)

试试这个:

 driver.findElement(By.linkText("Examples")).click();
    while(true)
    {
    driver.findElement(By.xpath("// button[@type='button']")).click();
    Assert.assertTrue(driver.findElement(By.xpath("// h1[2]")).isDisplayed(),"Message is not displayed");
    }