亲爱的 Selenium Webdriver 专家,
在“/html/body/form/div[2]/div[4]/div[1]/div/div/div[1]/”上执行 XPath 查询时出现以下异常(在 if 语句中) a”来自http://www.domain.com.au/Property/For-Sale/House/NSW/Auburn/?adid=2010111460:
Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"/html/body/form/div[2]/div[4]/div[1]/div/div/div[1]/a"}
以下是发生此异常的代码片段:
WebDriver driver = new FirefoxDriver(firefoxProfile);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.domain.com.au/Property/For-Sale/House/NSW/Auburn/?adid=2010111460");
if (driver.findElement(By.xpath("/html/body/form/div[2]/div[4]/div[1]/div/div/div[1]/a")).isDisplayed() &&
driver.findElement(By.xpath("/html/body/form/div[2]/div[4]/div[1]/div/div/div[1]/a")).getAttribute("href").length() > 0) {
WebElement photoPageElement = driver.findElement(By.xpath("/html/body/form/div[2]/div[4]/div[1]/div/div/div[1]/a"));
photoPageURL = photoPageElement.getAttribute("href");
.....
}
此代码片段已成功从其他属性(例如http://www.domain.com.au/Property/For-Sale/House/NSW/Auburn/?adid=2010007127 )中找到相同的元素。
我正在寻找一个高质量的 XML/XHTML 浏览器来遍历同一个文档,以确定这种异常的原因。
是否可以在没有异常风险的情况下检查元素的存在?我认为 driver.findElement(By.xpath(....).isDisplayed()) 是为了做到这一点。
我在 Windows XP / 7 上运行 Selenium Webdriver 2.25.0、Java 7.0、Netbeans 7.2。
您的建议将不胜感激。
提前致谢,
杰克