getPageSource не находит элемент Selenium Java - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь написать код, в котором пользователь набрал текст на Python, нажал Enter, и это приложение "Точка учебных пособий по Python" находится на 4-й странице. Моя логика такова: найдите этот элемент с помощью getPageSource и продолжайте нажимать кнопку «Далее». Однако я вижу 2 проблемы:
1) Найденные страницы 0 - Я ожидаю намного больше страниц, а xpath показывает 56 +
2) Он продолжает нажимать на следующую кнопку и переходит на страницу 6, то есть он не нашел эту книгу на странице 4.

public class AmazonProductSearchTest {

    public static WebDriver driver;

    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\Downloads\\chromedriver_win32\\chromedriver.exe");
        driver= new ChromeDriver();
        //WebDriverWait wait = new WebDriverWait(driver,30);
        driver.get("https://www.amazon.com/");

        driver.findElement(By.xpath("//input[@id='twotabsearchtextbox']")).sendKeys("Python");
        driver.findElement(By.xpath("//input[@value='Go']")).click();

        //Implicit wait till page loads
        driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

        //Scroll down to find pagination
        JavascriptExecutor jse = (JavascriptExecutor) driver;
        jse.executeScript("window.scrollBy(0,5000)", "");
        //Number of Pages
        List<WebElement> pagesFound=driver.findElements(By.xpath("//a[contains(@href, '/s?k=python')]"));
        System.out.println("Pages found "+ pagesFound.size());

        //Will click on Next link until we find a specific book-using page source
        while(!driver.getPageSource().equals("Python tutorial Tutorials Point")){
            driver.findElement(By.xpath("//a[contains(text(),'Next')]")).click();
            if(driver.getPageSource().equals("Python tutorial Tutorials Point")){
                System.out.println("Found searched item");
                break;
            }
        }

    }

}

Я мог бы использовать некоторую подсказку / помощь. Спасибо за ваше время.

1 Ответ

0 голосов
/ 21 мая 2019

pagesFound ссылается на кнопку Далее (// a [содержит (@href, '/ s? K = python')]).Я считаю, что pagesFound должен использовать последний отключенный номер, который относится к реальному количеству pagesFound, а не кнопку Next.Скопируйте вставленный выше код и список был пуст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...