【发布时间】:2019-08-02 08:47:33
【问题描述】:
我正在抓取一个网站的固定装置,然后使用另一个网站检查每个团队的表格。我遇到的问题是,并非所有团队都存在于表单网站上,我正在为那些在未找到 URL 页面上不存在 xPath 清除的团队获得 NoSuchElementException。我正在尝试捕获异常,但程序仍然中断。
我添加了一个 try catch,但它并没有解决我的问题,程序作为一个未找到的团队到达时立即中断。
for(int i = 0; i < fixtures.getAwayTeams().size(); i++)
{
driver.navigate().to(FORMURL.concat( (fixtures.getAwayTeams().get(i)).replace( ' ', '+' )));
for (int j = 1; j < 11; j++) {
String xPath = FORMXPATHONE.concat( String.valueOf( j ) ).concat(FORMXPATHTWO);
try {
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xPath)));
forms = driver.findElementsByXPath( xPath );
} catch(NoSuchElementException | StaleElementReferenceException e) {
awayTeamForm.add("No Form for Team");
}
for (WebElement languageElement : forms) {
ArrayList <String> wld = new ArrayList<String>();
wld.add( languageElement.getText() );
String listedForm = String.join(",", wld );
awayTeamForm.add(listedForm);
}
}
}
}
原因:org.openqa.selenium.NoSuchElementException:无法定位元素://*[@id="results"]/table/tbody/tr[1]/td[6]
【问题讨论】:
-
你可能听错了
NoSuchElementException。您可能会发现默认的java.util.NoSuchElementException,而代码会抛出org.openqa.selenium.NoSuchElementException
标签: java selenium web-scraping