[英]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.