gpt4 book ai didi

java - 我想遍历页面的链接,但我的程序在中间终止而没有抛出任何错误

转载 作者:行者123 更新时间:2023-11-30 10:25:33 25 4
gpt4 key购买 nike

public class CountingBrokenLinks {
static int count = 0;
static int currentElement = 0;

public static void main(String[] args) {

System.setProperty("webdriver.chrome.driver", "C:\\Selenium Drivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
WebDriverWait wait = new WebDriverWait(driver, 100);
driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
driver.get("http://www.hindustantimes.com/");
driver.manage().window().maximize();
wait.until(ExpectedConditions.elementToBeClickable(By.id("amenu-india-col")));
List<WebElement> listOfLinks = driver.findElements(By.tagName("a"));
int noOfLinks = listOfLinks.size();
for (int i = 0; i < noOfLinks; i++) {
WebElement element = listOfLinks.get(currentElement);
if (!(element.getText().isEmpty())) {
String linkText = element.getText();
System.out.println(linkText);
driver.findElement(By.linkText(linkText)).click();
String title = driver.getTitle();
if (title.contains("error")) {
count++;
}
driver.navigate().back();
wait.until(ExpectedConditions.elementToBeClickable(By.id("amenu-india-col")));
listOfLinks = driver.findElements(By.tagName("a"));
currentElement++;
}

}

}

}

我要访问http://www.hindustantimes.com/并遍历页面中的所有链接。如果任何页面标题包含“错误”一词,我想增加计数。

之前我遇到了 StaleElement 异常,但我再次初始化列表并维护我使用静态变量的索引。

程序在这一行终止:-

String linkText = element.getText();

因为它没有显示文本(用于调试目的)我不明白为什么程序会终止。

最佳答案

您的程序看起来不错,但您应该更改以下代码行:

WebElement element = listOfLinks.get(currentElement);

WebElement element = listOfLinks.get(i);

因为你将currentElement的值设置为0,所以你的代码不会遍历列表的所有元素。

关于java - 我想遍历页面的链接,但我的程序在中间终止而没有抛出任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46137756/

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