我想使用findelements将所有文本放到一个对象中,然后查看列表中是否存在字符串
Browser_Launch("chrome");
sign_in();
String a = null;
Element_to_be_clicked("xpath", "//*[@id='history-guide-item']/a");
List<WebElement> text = driver.findElements(By.xpath("//ol[@class='item-section']//li//div//a"));
for (int i = 0; i < text.size(); i++) {
a = text.get(i).toString();
System.out.println(a);
}
if (a.contains("Will & Grace - Back This Fall")) {
System.out.println("test passed");
} else {
System.out.println("test failed");
}
网站:Youtube 页面:历史
测试:尝试将历史记录页面中显示的视频的所有名称都添加到对象中,以便我可以断言
谢谢
答案 0 :(得分:1)
首先,您需要将a
声明为字符串列表,如:List<String> a = new ArrayList<>();
其次,由于text
是List<WebElement>
,您应该获取网络元素的文本,然后比较锚标记链接的getText()
。
因此a = text.get(i).toString();
代替a.add(text.get(i).getText());
而不是 Browser_Launch("chrome");
sign_in();
List<String> a = new ArrayList<>();
Element_to_be_clicked("xpath", "//*[@id='history-guide-item']/a");
List<WebElement> text = driver.findElements(By.xpath("//ol[@class='item-section']//li//div//a"));
for (int i = 0; i < text.size(); i++) {
a.add(text.get(i).getText());
System.out.println(text.get(i).getText());
}
if (a.contains("Will & Grace - Back This Fall")) {
System.out.println("test passed");
} else {
System.out.println("test failed");
}
。这样我们就可以将所有视频名称添加到列表中。
更新代码:
http://crmorg/v2/api/
答案 1 :(得分:0)
你在循环中什么都不做,试试这个:
Browser_Launch("chrome");
String textToFind = "Will & Grace - Back This Fall";
boolean isTextPresent = false;
sign_in();
Element_to_be_clicked("xpath", "//*[@id='history-guide-item']/a");
List<WebElement> text = driver.findElements(By.xpath("//ol[@class='item-section']//li//div//a"));
for (int i = 0; i < text.size(); i++)
{
if (text.get(i).toString().contains(textToFind))
{
isTextPresent = true;
break;
}
}
if (isTextPresent)
{
System.out.println("test passed");
} else
{
System.out.println("test failed");
}
答案 2 :(得分:0)
此xpath(//ol[@class='item-section']//li//div//a
)错误。
使用//a[@dir='ltr']