2014-04-01 48 views
0

目前正在硒的webdriver和代碼已經被寫入的Java如何在Selenium WebDriver的屬性文件中使用多行屬性?

在下面的代碼我可以能夠檢查下拉值與UI匹配。但我只嘗試過一次。同樣的方法,我想檢查許多下拉選項一個接一個。

在此代碼中,屬性文件包含下拉爲visualizationId = Day,Week,Month,Quarter,Semester,Year,RD Tech Group,ICC,Center,Software Pack,Product,Project,Customer PRs,Severity,優先

它正確地檢查和相同的選項是在UI或不可用。

如果我有很多喜歡visualizationId =日,周,月,季度,學期一年,RD科技集團,國際商會中心,軟件包,產品,項目,客戶的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"); 

} 

字符串[] 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

任何人都可以給我建議的解決方案 – Amirdha

+0

再通過將屬性值作爲參數,用上面的方法對所有屬性。 – Manigandan

+0

這是**。properties **文件還是** .txt **文件? –

回答

3

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")

+0

.properties將如何看起來像。一旦它被執行,那麼我如何檢查Periodid值也應該出現在同一個屬性文件中.properties – Amirdha

+0

我的問題是關於逐個選擇選項爲什麼需要更改爲.properties。在.txt中,它似乎可視化工作正常 – Amirdha

+0

看到我更新的答案!基本上你必須使用'APPTEXT.getProperty(「visualizationId」)''和'APPTEXT.getProperty(「periodId」)'來獲得對應於** visualizationId **和** periodId **的值 –

相關問題