2013-08-27 71 views
0

我正在做一些自動化測試,我試圖從Web元素列表中保存一些項目到一個字符串數組,應該有一些解析涉及但我也不太清楚怎麼回事,請參見下面Selenium從一個Web元素列表中添加項目到一個字符串數組列表

public void I_should_see_the_following_folders(DataTable expectedData) throws Throwable { 
    int tbl1; int tbl2; 
    List<List<String>> featureTable = expectedData.raw(); 
    WebElement folders = driver.findElement(By.id("folders")); 
    List <WebElement> emailFolders = folders.findElements(By.className("folder-name")); 

    List<String> foo = new ArrayList<String>(); 
    for (List<String> featuresList : expectedData.raw()) 
     foo.add(featuresList.get(0)); 

     tbl1 = emailFolders.size(); 
     tbl2 = featureTable.size(); 

    List<String> webList = new ArrayList<String>(); 
    for(int i=0;i<tbl1;i++){ 
     webList.add(emailFolders.get(0)); 
    } 



} 

代碼片段正是我想要做的就是把項目的數據表列表,將其轉換成字符串數組,然後採取從網頁項目列表,也將其存儲到一個字符串數組中,然後比較每個數組以確定元素是否存在,並且不是特定順序相同。

我想我得到了數據表數組列表的工作,但需要一些幫助與Web元素數組列表。

謝謝!

+0

那麼從什麼你想要的WebElement信息?你想要它是「文本」嗎?其他一些屬性? – Arran

+0

我想獲取文本,然後做一個字符串比較。 – vslat

回答

0

請嘗試使用下面的示例代碼,變化的XPath /數據相應

List<WebElement> resultList = _driver.findElements(By.xpath("//img[contains(@src,'tab-close.png')]/preceding-sibling::span[@class='tab-name ng-binding']")); 
     for (WebElement resultItem : resultList){ 
      String tabname=resultItem.getText(); 
      if(resultItem.getText().equalsIgnoreCase("Dashboard")){ 
      GlobalFunctions.clickOnButtonCustomised(false, _driver, By.xpath("//span[@class='tab-name ng-binding' and contains(text(),'"+tabname+"')]/following-sibling::img[contains(@src,'tab-close.png')]"), ""); 
      } 
     } 
0

更改此:

for (int i=0; i<tbl1; i++) 
    webList.add(emailFolders.get(0)); 

要這樣:

for (WebElement emailFolder : emailFolders) 
    webList.add(emailFolder.getAttribute(XXX)); 

然後,用名稱替換XXX存儲實際文件夾名稱的屬性。

的幾個例子:

  • 對於<tag><class="folder-name" id="folder1"></tag>,與"id"
  • 對於<tag><class="folder-name" value="folder1"></tag>替換XXX,與"value"
  • 對於<tag><class="folder-name">folder1</tag>替換XXX,與"innerHTML"

取代XXX順便說一句,代替Ø f getAttribute("innerHTML"),你可以簡單地使用getText()

0

有可能是WebElements的列表轉換爲String []數組更簡單的方法,但這種方法一般適用 -

// iterate through all elements adding to array we are returning 
public static String[] listToStringArray(List<WebElement> inList) { 
    String[] outArray = new String[inList.size()]; // instantiate Array 

    for (int i = 0; i < inList.size(); i++) { 
     outArray[i] = inList.get(i).getText(); 
     } 
    } 
    return outArray; 
} 
相關問題