2014-01-14 36 views
2

我有一個輸入元素,當點擊時(用戶可以爲字段選擇一個值)打開一個新的彈出窗口。PhantomJSDriver Click元素WebDriverException超時

標記:

<html> 
<input type="text" id="myPopup" readonly="readonly" name="myPopup"> 
</html> 

C#:

var driver = new PhantomJSDriver(@"C:\PhantomJS"); 
    driver.Navigate().GoToUrl(@"http://username:[email protected]/myUrl.aspx"); 
    var popupField = driver.FindElementById("myPopup"); 
    popupField.Click(); 

(在URL中使用Windows身份驗證我傳遞憑據)

我得到一個WebDriverException:

「HTTP請求到遠程WebDriver服務器對於URL ...元素/:wdc:1389663237442 /點擊60秒後超時。「

我嘗試過的所有其他交互操作除了這個特定的元素。也嘗試與IE/Chrome驅動程序,它的工作。

任何想法?

PhantomJS 1.9.2, C#/ GhostDriver, 硒的webdriver 2.39, 視窗7 X64的。 讓我知道,如果有任何其他信息,我可以提供。

+0

我添加了標記。它適用於IE/Chrome驅動程序。 – user3167162

+0

我嘗試了wait.Until(ExpectedConditions.ElementIsVisible(By.Id(「myPopup」))和Thread.Sleep(TimeSpan.FromMinutes(2)),但它仍然出現超時錯誤。 – user3167162

+0

Actions和JavaScript都不是Click()工作 - 遇到同樣的超時時間,並且我嘗試了Actions ClickAndHold()> screenshot> Release() - 我可以看到元素在屏幕截圖中被點擊,但在發佈時我得到了超時。 – user3167162

回答

1

我有類似的問題。正如你所描述的,測試在FF上工作,但在PhantomJs上超時。我測試的頁面使用了很多社交媒體插件,我認爲它們使用XHR。去除PhantomJs上的大部分安全限制,爲我解決了這個問題(見下文)。

service.IgnoreSslErrors = true; 
service.WebSecurity = false; 
service.LocalToRemoteUrlAccess = true; 
service.DiskCache = true; // Dunno what this does but I thought it might help. 
PhantomJSDriver driver = new PhantomJSDriver(service); 
相關問題