gpt4 book ai didi

java - getPageSource 未定位项目-Java Selenium

转载 作者:行者123 更新时间:2023-12-02 05:25:19 24 4
gpt4 key购买 nike

我正在尝试编写一段代码,用户在其中输入Python,然后按回车键,这个应用程序“Python教程教程点”位于第四页。我的逻辑是:使用 getPageSource 找到该项目并继续单击“下一步”按钮。然而我看到两个问题:
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;
}
}

}

}

我需要一些提示/帮助。感谢您抽出时间。

最佳答案

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

关于java - getPageSource 未定位项目-Java Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56236996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com