在webdriver中,如何使用Java显示或不显示下拉字段

时间:2012-12-14 10:50:51

标签: java webdriver selenium-webdriver

我需要验证是否在屏幕上显示下拉字段是否在webdriver中使用Java。在仅在另一个屏幕中选中复选框后,此下拉字段将显示在此屏幕中。我使用以下代码验证字段是否显示,但是,它没有返回任何值,如true或false。

driver.findElements(By.name("ctl00$MasterPlaceHolder$DdlPwdExp"));
driver.findElements(By.name("ctl00$MasterPlaceHolder$DdlSessionExp"));
driver.findElements(By.name("ctl00$MasterPlaceHolder$DdlfailedLogin"));

任何人都可以帮助我。将不胜感激。

2 个答案:

答案 0 :(得分:1)

应使用xUnit-system和Asserts进行验证。例如。 JUnit或TestNG for Java。您可以使用TestNG以下列方式进行验证(对于JUnit,参数的顺序略有不同):

Assert.assertEquals(driver.findElements(By.name("ctl00$MasterPlaceHolder$DdlPwdExp")).size(), 1, 
    "Password field wasn't found"); 
Assert.assertEquals(driver.findElements(By.name("ctl00$MasterPlaceHolder$DdlSessionExp")).size(), 1,
    "Some other field wasn't found"); 
Assert.assertEquals(driver.findElements(By.name("ctl00$MasterPlaceHolder$DdlfailedLogin")).size(), 1, 
    "Whatever field wasn't found"); 

答案 1 :(得分:0)

首先我通过使用Khrol的上述答案解决了我的问题,我也尝试了另一种方法,它完全解决了我的问题。

int size = driver.findElements(By.name("ctl00$MasterPlaceHolder$DdlPwdExp")).size();
if (size > 0)
{
System.out.println("No. of Days for Password Expiration field: is displayed");
}
else
{
System.out.println("No. of Days for Password Expiration field: is not displayed");
}