IF条件在[关闭]中未按预期工作

问题描述 投票:-1回答:2
for(int row=1; row <= 6; row++)
{
    WebDriver driver=new ChromeDriver();
    driver.manage().deleteAllCookies();
    driver.get("http:/path/");
    driver.manage().window().maximize();
    String username = s.getCell(2,row).getContents();
    System.out.println("Username: "+username);
    driver.findElement(By.id("j_username_leftAside")).sendKeys(username);
    String password= s.getCell(3,row).getContents();
    System.out.println("Password: "+password);
    driver.findElement(By.id("j_password_leftAside")).sendKeys(password);
    driver.findElement(By.xpath("/html[@class=' js opacity generatedcontent pointerevents']/body[@class='page-homepage pageType-ContentPage template-pages-layout-RexelHomePageLayout pageLabel-homepage language-de ']/div[@id='page']/div[@id='content']/div[@id='content']/div[@class='content-top-inner']/div[@id='content-inner']/div[@class='mid-wrapper'][1]/div[@class='yCmsContentSlot']/div[@class='login clear']/form[@id='loginForm']/div[@class='left sign-in']/button[@class='Sign-in rx-btn mb0']")).click();

    if((driver.findElement(By.xpath(".//*[@id='globalMessages']/div"))).isDisplayed())
    {
        System.out.println("Login Failed");
        String Error=driver.findElement(By.xpath(".//*[@id='globalMessages']/div")).getText();
        System.out.println("The Error mesaage is :"+Error);
        System.out.println("***********************************************************************************************************");
    }
    else
    {
        System.out.println("Login Sucessfull");
        System.out.println("***********************************");
        driver.findElement(By.xpath(".//*[@id='content-inner']/div[1]/div/div[2]/div[4]/div/div/ul/li[9]/a")).click();
    }
    driver.close();
}

显示IF条件打印失败否则传递。它适用于失败条件但是对于传递条件也是其checkig并且显示无法定位元素

java selenium selenium-webdriver selenium-chromedriver
2个回答
1
投票

等待元素可见:

如果是,请尝试这个

WebDriverWait wait=new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='globalMessages']/div")));
//then your code.....

1
投票

您需要使用下面的try catch块 -

try
{
    if((driver.findElement(By.xpath(".//*[@id='globalMessages']/div"))).isDisplayed())
    {
        System.out.println("Login Failed");
        String Error=driver.findElement(By.xpath(".//*[@id='globalMessages']/div")).getText();
        System.out.println("The Error mesaage is :"+Error);
        System.out.println("***********************************************************************************************************");
    }
}
catch (Exception e)
{
    System.out.println("Login Sucessfull");
    System.out.println("***********************************");
    driver.findElement(By.xpath(".//*[@id='content-inner']/div[1]/div/div[2]/div[4]/div/div/ul/li[9]/a")).click();
}
© www.soinside.com 2019 - 2024. All rights reserved.