2011-09-08 21 views
1

即時通訊使用Selenium的HtmlUnitDriver有問題。Selenium HtmlUnit freeze隨機加載一個網頁

我使用Selenium 2.5版本。

測試非常簡單,通常它可以正常工作,但有時候驅動程序只是停下來等待頁面加載。

我的代碼是這樣的:

初始化...

private WebDriver driver; 
    driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);((HtmlUnitDriver) driver).setJavascriptEnabled(true); 
     //driver = new FirefoxDriver(); 
     driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS); 
     driver.manage().timeouts().setScriptTimeout(0, TimeUnit.MILLISECONDS); 

,然後很多塊像這樣的:

new Actions(driver).moveToElement(driver.findElement(By.linkText("Someting"))).perform(); 
     driver.findElement(By.linkText("something else")).click(); 
     driver.findElement(By.name("something")).sendKeys("8"); 
     driver.findElement(By.xpath("//img[@title='something']")).click(); 

各集團公司()之後,它加載一個新的頁面。

我通常結束整個測試正確,我試圖抓住所有的塊,所以網絡不是問題。

的webdriver的是忽略了超時(我嘗試了很多diferent超時和問題依然存在),我不能從另一個線程invoquing停止駕駛「退出()」或「關閉()」

我搜索到處都是,但我找不到解決方案。

¿任何人都可以幫到我嗎?

在此先感謝。

回答

2

我解決了它,如果任何人有同樣的問題,我發佈我的解決方案。

我可是從另一個線程按下ESC鍵(主要是忙等待......)

((HtmlUnitDriver) test.getDriver()).getKeyboard().pressKey(Keys.ESCAPE); 

,然後我用殺死瀏覽器,然後重新啓動測試

test.getDriver().quit(); restart();//create a new test instance 
0

我以前遇到過這種行爲。

我會先更新到2.9,然後再試一次

然後,我會檢查我打的頁面,因爲如果他們有框架或iFrame他們得到下載過,如果你不控制自己的任何內容可能發生

看看這個link,因爲它可能有你正在尋找的解決方案。

希望這會有所幫助。

+0

感謝您的答覆,即時通訊使用HtmlUnit 2.9的Selenium 2.5。 我讀了這個問題,是的,頁面有框架。但我想加載全部:s 現在即時嘗試從其他線程(主要是忙等待...)按下esc ((HtmlUnitDriver)test.getDriver())。getKeyboard()。pressKey(Keys。逃逸); 然後我殺了瀏覽器並重新啓動測試 test.getDriver()。quit(); restart(); //創建一個新的測試實例 它似乎工作,但即時通訊等待最後一次真正的測試。 再次感謝 – Anonimo