gpt4 book ai didi

java - WebDriver "Unable to locate element"异常

转载 作者:太空宇宙 更新时间:2023-11-04 08:06:08 25 4
gpt4 key购买 nike

运行以下代码时出现“无法定位元素”异常。我的预期输出是 GoogleResults 第一页

public static void main(String[] args) {
WebDriver driver;
driver = new FirefoxDriver();
driver.get("http://www.google.com");
driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS);

WebElement oSearchField = driver.findElement(By.name("q"));
oSearchField.sendKeys("Selenium");

WebElement oButton = driver.findElement(By.name("btnG"));
oButton.click();

//String oNext = "//td[@class='b navend']/a[@id='pnnext']";
WebElement oPrevious;
oPrevious = driver.findElement(By.xpath("//td[@class='b navend']/a[@id='pnprev']"));

if (!oPrevious.isDisplayed()){
System.out.println("First Page of GoogleResults");
}
}

如果我运行上面的代码,我会收到“无法定位元素异常”。我知道上一个按钮元素不在 Google 搜索结果页面的第一页中,但我想抑制异常并获取下一步 if 条件的输出。

最佳答案

逻辑错误-

oPrevious = driver.findElement(By.xpath("//td[@class='b navend']/a[@id='pnprev']"));

如果 WebDriver 无法找到该元素,将会失败或给出错误。

尝试使用类似 -

public boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}

您可以将 xpath 传递给函数,例如

boolean x = isElementPresent(By.xpath("//td[@class='b navend']/a[@id='pnprev']"));
if (!x){
System.out.println("First Page of GoogleResults");
}

关于java - WebDriver "Unable to locate element"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12071977/

25 4 0
文章推荐: python - 比较 Python 列表中的 i 和其他项目
文章推荐: python - 从列表中删除标点符号
文章推荐: c++ - 我可以在没有 tputs 或 putp 的情况下使用 tparm()
文章推荐: python - 如何从这种情况下用 python 删除 结构?