我正在尝试获取正确的西雅图页数,即7,然后单击从1到7的每页。我有2个问题,看到下面带有星号**的部分:
1)我不确定如何编写xpath,以便我得到7而不是11
2)while循环是一个无限循环
public class Job {
public static WebDriver driver;
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\Shahriar\\Downloads\\chromedriver_win32\\chromedriver.exe");
driver= new ChromeDriver();
driver.get("https://web.expeditors.com/careers/#/listTop");
driver.manage().window().maximize();
//Disable the cookie notification at bottom
driver.findElement(By.xpath("//a[@id='hs-eu-decline-button']")).click();
// Find more cities and scroll down
driver.findElement(By.xpath("//a[@id='moreCity']")).click();
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("window.scrollBy(0,5500)", "");
//Locate US-Seattle and click and verify
driver.findElement(By.xpath("//label[@class='ng-binding']//input[@id='us~Seattle']")).click();
String state=driver.findElement(By.xpath("//a[contains(text(),'United States - Seattle')]")).getText();
Assert.assertEquals(state, "United States - Seattle");
**//Number of search pages found should be 7
List<WebElement> resultPages=driver.findElements(By.xpath("//a[@href='#listTop']"));
Assert.assertEquals(7, resultPages.size());**
**//Go to each page by clicking on page number at bottom
int count=0;
WebElement next_button=driver.findElement(By.xpath("//a[@ng-click='setCurrent(pagination.current + 1)']"));
while (resultPages.size()!=0){
next_button.click();
count++;
System.out.println("Current page is "+ count);
}**
//driver.close();
}
}
我可以帮忙。在此先感谢您的时间。
最佳答案
这是您需要的逻辑。
//Number of search pages found should be 7
List<WebElement> resultPages=driver.findElements(By.xpath("//a[@href='#listTop' and @ng-click='setCurrent(pageNumber)']"));
Assert.assertEquals(7, resultPages.size());
for (int i = 1; i <= resultPages.size(); i++) {
driver.findElement(By.xpath("(//a[@href='#listTop' and @ng-click='setCurrent(pageNumber)'])[" + i +"]")).click();
System.out.println(driver.findElement(By.xpath("(//a[@href='#listTop' and @ng-click='setCurrent(pageNumber)'])[" + i +"]")).getText());
}
关于java - 获取正确的搜索结果页码-Selenium Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55911353/