2016-03-02 134 views
1

我使用Selenium webdriver和Java自動化Web應用程序中的一些功能測試用例。我有一張表格可以添加新員工。添加新員工時,可以在其他頁面中看到添加的員工詳細信息。我想驗證添加的員工詳細信息,並最終從查看頁面中刪除該員工。 每個添加的員工詳細信息都在查看頁面的單獨表格中顯示。每個表的XPath是如下Selenium Webdriver - 從動態表訪問數據

.//*[@id='contentSec']/div/div[1] 
.//*[@id='contentSec']/div/div[2] 
.//*[@id='contentSec']/div/div[3] 
and so on... 

的問題是,我怎樣才能得到最後添加的職員表的XPath的,以驗證員工詳細信息。我無法使用員工姓名或任何員工細節進行搜索,因爲多個員工可能具有相同的詳細信息我想要一個通用的方法來訪問應該始終工作的員工細節。我用

List<WebElements> elements=driver.findElements(By.xpath(".//*[@id='contentSec']/div")); 

elements.size(); 

始終返回1,即使多個表存在。有沒有方法可以訪問最後添加的員工詳細信息?

回答

0

這聽起來像你缺少/div在年底拿到內部div個父div內:

.//*[@id='contentSec']/div/div 

是否有訪問最後添加的員工詳細信息的任何方法?

在這種情況下,你可以使用last()

.//*[@id='contentSec']/div/div[last()] 
+0

嘗試上面的代碼,以獲得size時,但有一些問題。如果我用table xpath'.//*[@id='contentSec']/div/div[2]'刪除僱員',那麼'elements.size();'返回3,應該是2 – stackoverflow

+0

@ user5912043好吧,當然,更新。請檢查一下。 – alecxe

0

所以,你在你找到的元素的方法做一個小錯誤。

應該findElements而不是findElement

List<WebElements> elements=driver.findElements(By.xpath(".//*[@id='contentSec']/div")); 

driver.findElement總是會元素的第一accurance這就是爲什麼你總是讓1嘗試使用elements.size()

+0

對不起!!這是我的代碼中的一個錯誤,我已經更新了它 – stackoverflow