getPageSource找不到项目-Java Selenium

时间:2019-05-21 11:09:09

标签: java selenium while-loop

我正在尝试编写一个用户在Python中键入代码的代码,按Enter键,此应用程序“ Python教程Tutorials Point”位于第4页。我的逻辑是:使用getPageSource找到该项目,并继续单击Next按钮。但是我看到两个问题:
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 :(得分:0)

pagesFound指的是“下一步”按钮(// a [contains(@href,'/ s?k = python')])。我相信pagesFound应该使用上一个禁用的数字,该数字指的是pagesFound的实际数量,而不是“下一步”按钮。复制粘贴上面的代码,列表为空。