2013-02-13 29 views
0

突然之間,所有的測試都停止了。錯誤消息我得到的是llegalStateException:無法通過xpath爲com.gargoylesoftware.htmlunit.TextPage定位元素

java.lang.IllegalStateException: Unable to locate element by xpath for [email protected] 
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElementByXPath(HtmlUnitDriver.java:796) 
at org.openqa.selenium.By$ByXPath.findElement(By.java:344) 
at org.openqa.selenium.htmlunit.HtmlUnitDriver$5.call(HtmlUnitDriver.java:1251) 
at org.openqa.selenium.htmlunit.HtmlUnitDriver$5.call(HtmlUnitDriver.java:1248) 
at org.openqa.selenium.htmlunit.HtmlUnitDriver.implicitlyWaitFor(HtmlUnitDriver.java:991) 
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:1248) 
at org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:397) 

指着線

WebElement menu = driver.findElement(By.xpath("//a[starts-with(@href,'/index.html')]")); 

我的驅動程序初始化

public class ExtendedHtmlUnitDriver extends HtmlUnitDriver { 

public ExtendedHtmlUnitDriver(boolean enableJavascript) { 
    super(BrowserVersion.FIREFOX_10); 
    this.setJavascriptEnabled(enableJavascript); 
    this.getWebClient().setCssEnabled(false); 

} 

告訴我什麼是錯的!

重新啓動計算機似乎解決了這個問題。

回答

0

DomNode是提供getByXPath(String)方法的HtmlUnit類。如果你得到TextPage那麼你不應該使用這樣的方法,因爲HtmlUnit無法識別結果頁面中的DOM樹。

PS:我想知道如何重新啓動計算機可以解決這個問題。你能提供更多細節嗎?