2015-03-19 69 views
0

我有一個用戶界面,下拉列表中存在20,50,100,500,1000個值.20是缺省值。我需要編寫selenium java代碼來獲取值並比較它。以下是我寫的代碼。如何編寫代碼來比較硒中的下拉選項

WebElement show = driver.findElement(By.xpath(".//*[@id='revtable_length']/label")); 
     Select sel= new Select(show); 
     List <WebElement> option= sel.getOptions(); 
     //sAssert.assertEquals(show,"Show20501005001000 entries","retrieve table dropdown button is not present"); 
     for (int i= 0; i< option.size(); i++)![enter image description here][1] 
     System.out.print((option.get(i)).getText()); 

,但我得到的錯誤:

org.openqa.selenium.support.ui.UnexpectedTagNameException: Element should have been "select" but was "label" 
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-27 00:00:10' 
System info: host: 'bionicps0000574', ip: '167.209.185.85', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_20' 
Driver info: driver.version: unknown 
+0

HTML代碼: Zoso619 2015-03-19 07:45:12

+0

在評論請不要添加代碼 - 編輯您的帖子而是包含新的信息灰。 – 2015-03-19 07:46:52

回答

1

我覺得你是如何得到該元素有什麼錯在你的代碼。

這部分似乎是您獲得的是有「revtable_length」

WebElement show = driver.findElement(By.xpath(".//*[@id='revtable_length']/label")); 

但基礎上,您發佈的元素源代碼的ID

嘗試改變一個元素

WebElement show = driver.findElement(By.xpath(".//[@id='revtable_length']/label")); 

WebElement show = driver.findElement(By.xpath(".//*[@name='revtable_length']/label")); 

WebElement show = driver.findElement(By.xpath("//*[@name='revtable_length']")); 

希望這有助於。

試試這個。

WebElement show = driver.findElement(By.xpath("//*[@name='revtable_length']")); 
      Select sel= new Select(show); 
      List <WebElement> option= sel.getOptions(); 
      //sAssert.assertEquals(show,"Show20501005001000 entries","retrieve table dropdown button is not present"); 

      StringBuffer options = new StringBuffer(); 
      options.append("Show"); 
      for (int i= 0; i< option.size(); i++){ 
       options.append((option.get(i)).getText()); 
      } 

      System.out.print(options); 
      Assert.assertEquals(options.toString(),"Show20501005001000", "Retrieved value is not correct!"); 

希望這正是你所需要的。

+0

謝謝,它的作品,但我需要打印顯示和條目以及。 喜歡在

+0

你想打印它嗎? 顯示20 顯示50等? 或獲得價值和比較? – Anthony 2015-03-19 08:17:46

+0

號我想打印如:「Show20501005001000條目」 並且我想通過使用斷言命令來比較它。我可以嗎? 爲此,我需要保存實際值並將其與期望值進行比較 – Zoso619 2015-03-19 09:38:48