我是硒的新人。我在页面上有类似的链接与类似的xpaths(让我们说链接1到30)。我需要验证页面上是否存在所有这些内容(我希望selenium能够为每个元素打印类似“元素1”的内容)并且所有这些都是可点击的(新页面将打开)。 到目前为止,我有这个代码逐个点击所有链接并打印他们的标题:
driver.get("http://anysite.com");
String part1=".//*[@id='footer']/div/div[1]/div[2]/ul/li[";
String part2="]/a";
for (int i=1;i<=30;i++){
String text = driver.findElement(By.xpath(part1+i+part2)).getText();
System.out.println(text);
driver.findElement(By.xpath(part1+i+part2)).click();
System.out.println(driver.getTitle());
driver.get("http://anysite.com");
此外,我还有此代码可以单独验证每个链接的存在(如果我有30个链接,我必须复制此代码30次):
if(driver.findElements(By.xpath(".//*[@id='footer']/div/div[1]/div[2]/ul/li[1]/a")).size() != 0){
System.out.println("Element Link 1 is Present");
}else{
System.out.println("Element Link 1 is Absent");
}
到目前为止,我有两个测试用例,有没有办法将这两个部分组合在一起? 谢谢!
答案 0 :(得分:0)
在字符串1中,您将xpath视为:
String part1=".//*[@id='footer']/div/div[1]/div[2]/ul/li[";
虽然它应该是:
String part1="//*[@id='footer']/div/div[1]/div[2]/ul/li[";
您需要删除点“。”来自你的xpath。