2015-01-08 3 views
0

Я хочу получить результат, когда я выполняю поиск на амазонке. Ниже приводится сценарийКак получить общее количество результатов поиска с использованием селена

Открыть новый браузер экземпляр Перейдите к amazon.in Тип поисковый запрос в текстовое поле Нажмите на кнопку Поиск Validate веб-элемент отображения количества результатов поиска по нашей ожидаемой стоимости

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+.

Может кто-нибудь предложить по этому поводу.

ответ

3

Веб-сайт обычно используется для получения полного списка результатов поиска. Правильный элемент/тег "h2" с идентификатором "s-результат подсчета"

Ниже линии должно дать вам номер результата поиска подсчитывать:

String result = driver.findElement(By.id("s-result-count")).getText().split(" ")[2]; 
1

Попробуйте это:

result = driver.findElements(By.xpath(".//*[@id='atfResults']/ul[@id='s-results-list-atf']/li")).count(); 
3

Кажется, что вы пытаетесь забрать количество книг, подсчитав количество зачисленных книг. Таким образом, вам нужно будет перейти на каждую страницу и соответственно увеличить счет. Скорее всего, вы можете получить общее количество результатов, в качестве альтернативы, если вы посмотрите на верхней левой части страницы, как показано на рисунке ниже:

enter image description here

Таким образом, вы можете получить общее количество результатов из этого кода, как @Surya предложил:

String result = driver.findElement(By.id("s-result-count")).getText().split(" ")[2]; 
System.out.println(result); 
Смежные вопросы