簡體   English   中英

用Selenium WebDriver編寫Java循環

[英]Write java loop with selenium webdriver

我正在使用Webdriver和Java自動執行UI流程。 在以下方面需要幫助:

單擊鏈接,驗證標題,單擊瀏覽器后退按鈕-對內容中的鏈接數重復上述步驟。 我正在使用頁面對象設計,並且所有對象都在不同的類中。 我的代碼是:

objectBase.clickLink1();
titleVeri(pageTitle1);
driver.navigate().back();
objectBase.clickLink2();
titleVeri(pageTitle2);
driver.navigate().back();

objectBase是保存所有頁面對象的對象的名稱。 clickLink1clickLink2是頁面對象類上的方法,它們確實單擊鏈接。 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM