gpt4 book ai didi

java - 如何在 Selenium WebDriver 的属性文件中使用多行属性?

转载 作者:行者123 更新时间:2023-11-28 19:54:43 25 4
gpt4 key购买 nike

目前正在开发Selenium WebDriver,并且代码是用Java编写的。

在下面的代码中,我可以检查下拉值是否与用户界面匹配。但我只尝试了一滴。我想用同样的方法一一检查许多下拉选项。

在此代码中,属性文件包含下拉列表 visualizationId=Day,Week,Month,Quarter,Semester,Year,RD Tech Group,ICC,Center,Software Pack,Product,Project,Customer PRs,Severity ,优先

它正在正确检查,并且 UI 中是否提供相同的选项。

如果我有很多像 visualizationId=Day,Week,Month,Quarter,Semester,Year,RD Tech Group,ICC,Center,Software Pack,Product,Project,Customer PRs,Severity,Priority

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[]预期DropDownItemsInArray1 = 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");

}

}

最佳答案

visualization.properties 文件如下所示:

visualization.properties

属性文件基本上包含两件事:属性名称属性值visualization.properties 文件中,visualizationIdperiodId属性名称和对应的属性值> 使用 = 运算符进行分配。

更新了您发布的代码以从 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")

关于java - 如何在 Selenium WebDriver 的属性文件中使用多行属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22776355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com