如何在Selenium WebDriver中声明WebElement类型变量?
问题解决方法
错误根源
你写的代码里,driver.findElement(By.xpath("//*[@id=\"email\"]"))返回的是WebElement对象,但后续链式调用的isDisplayed()方法返回的是boolean类型(true或false),布尔值无法赋值给WebElement类型的变量,这就是报错的直接原因。
正确写法
如果需要存储WebElement对象,应该先单独获取元素,再按需调用isDisplayed()方法:
// 先获取WebElement对象并存储 WebElement email = driver.findElement(By.xpath("//*[@id=\"email\"]")); // 后续可调用isDisplayed()判断元素是否显示 boolean isEmailShown = email.isDisplayed();
额外建议
- 若仅需判断元素显示状态,无需存储WebElement,可直接写:
boolean isEmailShown = driver.findElement(By.xpath("//*[@id=\"email\"]")).isDisplayed();
- ID定位比XPath更高效简洁,建议改用:
WebElement email = driver.findElement(By.id("email"));
内容的提问来源于stack exchange,提问作者Mohammad.Y
相关产品推荐
相关产品推荐

