如何从Selenium Webdriver的属性文件中选择随机值?

时间:2014-04-03 03:13:29

标签: java selenium selenium-webdriver webdriver

目前我正在研究Selenium WebDriver并使用Java。 我有一个有许多下拉菜单的过滤器部分 在每个下拉列表中,我有很多选项可用于所有下拉菜单。 我把它放在名为Dropdown.properties

的属性文件中的所有选项

我在C:目录中有一个属性文件(dropdown.properties)。看起来像

visualizationId=Day,Week,Month,Quarter,Semester,Year,RD Tech Group,ICC,Center,Software Pack,Product,Project,Customer PRs,Severity,Priority 
periodId=Last 4 Weeks,Last 52 Weeks,Date Range,Week Range,Month Range,Year To Date      
classificationId=All PRs,External PRs,Internal PRs,Customer PRs   

topographyId=Overall,Center,ICC

swpacksId=ADVIP,ADVLEG,ADVSEC,Boot,H323,IBC,MULTI,None,OneOS_EAD,PROXY,SBO,SIP,TDRE,VoDSL 
priorityId=Very Urgent,Urgent,Routine,Not Urgent,On Hold,Not Assigned 
severityId=Blocking,Major,Minor,Cosmetic,OLD PR

通过为每个下拉列表使用Java,它需要从属性文件中选择几个值,并且需要与UI进行比较是否存在选项。

它不应该检查订单或者只是想检查属性文件中随机选择的选项是否在UI中可用

请建议我解决。

我已使用代码

读取了Property文件中的所有值
Properties APPTEXT = new Properties();
Log.info("Getting Input from the Property file");
FileInputStream fs = new FileInputStream("C:\\FilterSection\\dropdown.properties");
APPTEXT.load(fs);
System.out.println("Propertyfile : " +APPTEXT); 

任何人都可以帮我从属性文件中选择几个值并需要检入UI。

2 个答案:

答案 0 :(得分:1)

这可能会对你有所帮助。

public void getRandomOptions(dropdownName)
{
  Properties dropdown = new Properties();
  InputStream input = null;
  String returnString=null;
  input = new FileInputStream("yourconfig.properties");
  dropdown.load(input);
  String records = dropdown.getProperty(dropdownName);
  StringTokenizer breaker = new StringTokenizer(records, ",");
  int rLocation =(int) Math.random() * (breaker.countTokens()-1);
  for(int i=0;i<rLocation ;i++)
  {
      if(breaker.hasMoreTokens())
      returnString = breaker.nextToken();
  }

  return returnString;
}

答案 1 :(得分:0)

此代码将检索所有选项

WebElement element = driver.findElement(By.Id("dropdown_id"));
Select select = new Select(element);
List<WebElement> options = select.getOptions();
for(WebElement option : options){
  System.out.println(option.getText());
  // Compare this value with value retrieved from properties file 
}