我想在亚马逊搜索时得到结果计数。以下是方案
打开一个新的浏览器实例 导航到amazon.in 在文本框中键入搜索查询 单击搜索按钮 验证显示搜索结果数量的Web元素与我们的预期值
public void searchTestOne(){
WebDriver driver = new FirefoxDriver();
driver.get("http://www.amazon.in");
driver.manage().window().maximize();
driver.findElement(By.id("twotabsearchtextbox")).sendKeys("Books");
driver.findElement(By.className("nav-submit-input")).click();
int result = driver.findElements(By.xpath(".//*[@id='atfResults']/ul[@id='s-results-list-atf']/li")).size();
System.out.println(result);
driver.close();
driver.quit();
}
从上面的代码中,它只显示第一页结果的计数,如“16”,其中有这么多页面,总结果是2,000+。
任何人都可以就此提出建议。
答案 0 :(得分:3)
用于获取总搜索结果计数的Webelment不正确。正确的元素/标签是“h2”,id为“s-result-count”
下面的行应该给你搜索结果数量:
String result = driver.findElement(By.id("s-result-count")).getText().split(" ")[2];
答案 1 :(得分:3)
您似乎试图通过计算入伍书籍的数量来获取图书数量。这样,您必须导航到每个页面,并相应地增加您的计数。相反,您可以获得结果总数,或者,如果您查看页面的左上角,如下图所示:
因此,您可以通过@Surya建议获得此代码的结果总数:
String result = driver.findElement(By.id("s-result-count")).getText().split(" ")[2];
System.out.println(result);
答案 2 :(得分:1)
试试这个:
result = driver.findElements(By.xpath(".//*[@id='atfResults']/ul[@id='s-results-list-atf']/li")).count();