目前正在开发 Selenium WebDriver ,代码是用 Java 编写的。
在下面的代码中,我可以检查下拉值是否与UI匹配。但我只试过一次下拉。我希望逐个检查多个下拉选项的方法相同。
在此代码中,属性文件包含下拉列表 visualizationId = Day,Week,Month,Quarter,Semester,Year,RD Tech Group,ICC,Center,Software Pack,Product,Project,Customer PRs,Severity ,优先级
正确检查,UI中是否有相同的选项。
如果我有很多像 visualizationId =日,周,月,季,学期,年,RD Tech Group,ICC,中心,软件包,产品,项目,客户PR,严重性,优先级
periodId =过去4周,过去52周,日期范围,周范围,月份范围,年初至今
我该如何执行此
守则是:
@Test()
public void Filterselection_1() throws Exception{
BufferedReader in = new BufferedReader(new FileReader("C:\\FilterSection\\visualization.txt"));
String line;
line = in.readLine();
in.close();
String[] expectedDropDownItemsInArray = line.split("=")[1].split(",");
// Create expected list :: This will contain expected drop-down values
ArrayList<String> expectedDropDownItems = new ArrayList<String>();
for(int i=0; i<expectedDropDownItemsInArray.length; i++)
expectedDropDownItems.add(expectedDropDownItemsInArray[i]);
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("document.getElementById('visualizationId').style.display='block';");
// Create a webelement for the drop-down
WebElement visualizationDropDownElement = driver.findElement(By.id("visualizationId"));
// Instantiate Select class with the drop-down webelement
Select visualizationDropDown = new Select(visualizationDropDownElement);
// Retrieve all drop-down values and store in actual list
List<WebElement> valuesUnderVisualizationDropDown = visualizationDropDown.getOptions();
List<String> actualDropDownItems = new ArrayList<String>();
for(WebElement value : valuesUnderVisualizationDropDown){
actualDropDownItems.add(value.getText());
}
// Print expected and actual list
System.out.println("expectedDropDownItems : " +expectedDropDownItems);
System.out.println("actualDropDownItems : " +actualDropDownItems);
// Verify both the lists having same size
if(actualDropDownItems.size() != expectedDropDownItems.size())
System.out.println("Property file is NOT updated with the drop-down values");
// Compare expected and actual list
for (int i = 0; i < actualDropDownItems.size(); i++) {
if (!expectedDropDownItems.get(i).equals(actualDropDownItems.get(i)))
System.out.println("Drop-down values are NOT in correct order");
}
String [] expectedDropDownItemsInArray1 = line.split(“=”)[1] .split(“,”);
// Create expected list :: This will contain expected drop-down values
ArrayList<String> expectedDropDownItems1 = new ArrayList<String>();
for(int i=0; i<expectedDropDownItemsInArray1.length; i++)
expectedDropDownItems1.add(expectedDropDownItemsInArray1[i]);// Same VisualizationId values it is taking but it need to take 2nd i.e PeriodId drop down and it need to check
JavascriptExecutor executor1 = (JavascriptExecutor)driver;
executor1.executeScript("document.getElementById('periodId').style.display='block';");
// Create a webelement for the drop-down
WebElement periodDropDownElement = driver.findElement(By.id("periodId"));
// Instantiate Select class with the drop-down webelement
Select periodDropDown = new Select(periodDropDownElement);
// Retrieve all drop-down values and store in actual list
List<WebElement> valuesUnderPeriodDropDown = periodDropDown.getOptions();
List<String> actualDropDownItems1 = new ArrayList<String>();
for(WebElement value : valuesUnderPeriodDropDown){
actualDropDownItems1.add(value.getText());
}
// Print expected and actual list
System.out.println("expectedDropDownItems : " +expectedDropDownItems1);
System.out.println("actualDropDownItems : " +actualDropDownItems1);
// Verify both the lists having same size
if(actualDropDownItems1.size() != expectedDropDownItems1.size())
System.out.println("Property file is NOT updated with the drop-down values");
// Compare expected and actual list
for (int i = 0; i < actualDropDownItems1.size(); i++) {
if (!expectedDropDownItems1.get(i).equals(actualDropDownItems1.get(i)))
System.out.println("Drop-down values are NOT in correct order");
}
}
答案 0 :(得分:3)
visualization.properties文件如下所示:
属性文件基本上包含两件事:属性名称和属性值 在 visualization.properties 文件中, visualizationId 和 periodId 是属性名称和相应的属性值使用 = 运算符分配。
更新了您发布的代码,以便从visualization.properties文件中读取预期的下拉值:
public void Filterselection_1() throws Exception{
Properties APPTEXT = new Properties();
FileInputStream fs = new FileInputStream("C:\\FilterSection\\visualization.properties");
APPTEXT.load(fs);
String[] expectedDropDownItemsInArray = APPTEXT.getProperty("visualizationId").trim().split(",");
// Create expected list :: This will contain expected drop-down values
ArrayList<String> expectedDropDownItems = new ArrayList<String>();
for(int i=0; i<expectedDropDownItemsInArray.length; i++)
expectedDropDownItems.add(expectedDropDownItemsInArray[i]);
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("document.getElementById('visualizationId').style.display='block';");
// Create a webelement for the drop-down
WebElement visualizationDropDownElement = driver.findElement(By.id("visualizationId"));
// Instantiate Select class with the drop-down webelement
Select visualizationDropDown = new Select(visualizationDropDownElement);
// Retrieve all drop-down values and store in actual list
List<WebElement> valuesUnderVisualizationDropDown = visualizationDropDown.getOptions();
List<String> actualDropDownItems = new ArrayList<String>();
for(WebElement value : valuesUnderVisualizationDropDown){
actualDropDownItems.add(value.getText());
}
// Print expected and actual list
System.out.println("expectedDropDownItems : " +expectedDropDownItems);
System.out.println("actualDropDownItems : " +actualDropDownItems);
// Verify both the lists having same size
if(actualDropDownItems.size() != expectedDropDownItems.size())
System.out.println("Property file is NOT updated with the drop-down values");
// Compare expected and actual list
for (int i = 0; i < actualDropDownItems.size(); i++) {
if (!expectedDropDownItems.get(i).equals(actualDropDownItems.get(i)))
System.out.println("Drop-down values are NOT in correct order");
}
注意:
APPTEXT.getProperty("visualizationId")
将返回日,周,月,季度,学期,年份,RD Tech Group,ICC,中心,软件包,产品,项目,客户PR,严重性,优先级值。
为了获得与 periodId 相对应的值,请使用 - APPTEXT.getProperty("periodId")