如何使用硒获取搜索结果总数
How to get the total search result counts using selenium
我想在亚马逊搜索时获得结果计数。以下是场景
打开一个新的浏览器实例
导航到 amazon.in
在文本框中键入搜索查询
点击搜索按钮
根据我们的预期值验证显示搜索结果数量的网络元素
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+。
任何人都可以对此提出建议。
用于获取搜索结果总数的 Webelment 不正确。正确的 element/tag 是 "h2" with id "s-result-count"
下一行应该给你搜索结果数:
String result = driver.findElement(By.id("s-result-count")).getText().split(" ")[2];
试试这个:
result = driver.findElements(By.xpath(".//*[@id='atfResults']/ul[@id='s-results-list-atf']/li")).count();
您似乎是在尝试通过计算入伍的书籍数量来获取书籍数量。通过这种方式,您将不得不导航到每个页面,并相应地增加您的计数。相反,您可以获得结果总数,或者,如果您查看页面的左上角,如下图所示:
因此,您可以按照@Surya 的建议从这段代码中获取结果总数:
String result = driver.findElement(By.id("s-result-count")).getText().split(" ")[2];
System.out.println(result);
我想在亚马逊搜索时获得结果计数。以下是场景
打开一个新的浏览器实例 导航到 amazon.in 在文本框中键入搜索查询 点击搜索按钮 根据我们的预期值验证显示搜索结果数量的网络元素
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+。
任何人都可以对此提出建议。
用于获取搜索结果总数的 Webelment 不正确。正确的 element/tag 是 "h2" with id "s-result-count"
下一行应该给你搜索结果数:
String result = driver.findElement(By.id("s-result-count")).getText().split(" ")[2];
试试这个:
result = driver.findElements(By.xpath(".//*[@id='atfResults']/ul[@id='s-results-list-atf']/li")).count();
您似乎是在尝试通过计算入伍的书籍数量来获取书籍数量。通过这种方式,您将不得不导航到每个页面,并相应地增加您的计数。相反,您可以获得结果总数,或者,如果您查看页面的左上角,如下图所示:
因此,您可以按照@Surya 的建议从这段代码中获取结果总数:
String result = driver.findElement(By.id("s-result-count")).getText().split(" ")[2];
System.out.println(result);