[英]Write java loop with selenium webdriver
我正在使用Webdriver和Java自動執行UI流程。 在以下方面需要幫助:
單擊鏈接,驗證標題,單擊瀏覽器后退按鈕-對內容中的鏈接數重復上述步驟。 我正在使用頁面對象設計,並且所有對象都在不同的類中。 我的代碼是:
objectBase.clickLink1();
titleVeri(pageTitle1);
driver.navigate().back();
objectBase.clickLink2();
titleVeri(pageTitle2);
driver.navigate().back();
objectBase
是保存所有頁面對象的對象的名稱。 clickLink1
和clickLink2
是頁面對象類上的方法,它們確實單擊鏈接。 titleVeri
是用於驗證標題的實用程序方法。
我需要的是構造此內部循環,因為我對此有更多了解。
您可以為此使用地圖,在objectBase中創建方法clickLink(key)
然后做類似的事情
Map<String,String> myMap = new TreeMap();
myMap.put("1",pageTitle1);
myMap.put("2",pageTitle2);
for(Map.Entry<String,String> entry : myMap.entrySet()){
objectBase.clickLink(entry.getKey());
titleVeri(entry.getValue());
driver.navigate().back();
}
您所描述的內容並非嚴格可行。 原因是您無法獲得指向函數的指針。
但是,您說您正在使用Page對象模式。 您是否有一個返回link1()
的函數,而不是使用clickLink1()
函數? 這樣,您可以使用地圖(如BevynQ所說)。
Map<WebElement, String> linksAndTitles = new HashMap();
linksAndTitles.put(page.getHomePageLink(), "Home");
linksAndTitles.put(page.getUserPageLink(), "Contact Details");
...and so on for each of the different links...
for (WebElement link: linksAndTitles.keySet()){
link.click();
titleVeri(linksAndTitles.get(link));
driver.navigate().back();
}
附帶說明一下...如果這些鏈接之一是注銷鏈接...則必須單獨進行測試。
此外...我真的不建議您進行此測試...這可能只是浪費時間。 在每個頁面的isLoaded()
函數中,都應該測試標題。 這樣,無論何時調用page.get()
,標題都會被自動測試,而不是測試的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.