Selenium Web Driver If-Else条件可在两个按钮之间进行选择

时间:2017-06-16 10:33:10

标签: java if-statement selenium-webdriver

我正在为网页编写自动化测试,用户必须根据其存在点击按钮

我正在使用Selenium WebDriver和Java 脚本 1.一次只能出现一个按钮(button1button2) 2.如果存在button1,则用户点击该内容 3.如果存在button2,则用户点击该

代码:

 if(driver.findElement(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[2]/div/a/div")).isDisplayed() ) {
        //clicking on button1 if its presemt

        WebElement clickBtn1 = driver.findElement(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[2]/div/a/div"));
        clickBtn1.click();

 }
    else if(driver.findElement(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[3]/div[2]/div")).isDisplayed() ){
    //Clicking on button2 if its present

    WebElement clickBtn2 = driver.findElement(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[3]/div[2]/div"));
    clickBtn2.click();
}

else
    {
        System.out.println("No such button found");
    }

上面的代码段不起作用。有人可以帮忙纠正它。

注意:如果我删除了if-else条件并为每个按钮功能分别运行

谢谢,

2 个答案:

答案 0 :(得分:0)

在你的if-else逻辑尝试使用显式等待之前。

WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[2]/div/a/div")));

如果有帮助,请告诉我。

答案 1 :(得分:0)

感谢所有帮助过的人。如果将来有人需要,我会在这里发布工作代码。

方案: - 网页有两个按钮 - button1和button2。 - button1最初会出现 - 如果用户最初点击button1,则第二次按钮2将出现。 (在此实例中,button1对UI隐藏)

代码块:

if(!driver.findElements(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[3]/div[2]/div")).isEmpty()){

//Clicking on button2, which appears when button1 is not present
                WebDriverWait wait = new WebDriverWait(driver, 30);
                wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[3]/div[2]/div")));

                Thread.sleep(5000);
                driver.findElement(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[3]/div[2]/div")).click();

        }

        else if(driver.findElement(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[2]/div/a/div")).isEnabled() ){

//clicking on button1
                WebDriverWait wait = new WebDriverWait(driver, 30);
                wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[2]/div/a/div")));

        driver.findElement(By.xpath("//*[@id='product_container_1']/div[2]/div[2]/div[3]/div[2]/div/a/div")).click();


    }
    else
        {
            System.out.println("No such button found");
        }
        Thread.sleep(5000);