2013-10-18 126 views
0

在運行WebDriver自動化腳本時,我遇到了一種情況,它試圖打開一個包含一個帶有實時攝像頭(使用Java applet製作)段的頁面。一旦腳本到達此頁面 - 安全警告警報(帶有允許和不允許)將顯示並阻止執行過程。這是任何人都面臨的事實 - 我正在尋找一個選項來阻止此安全警告顯示在頁面上。如何處理Java警告彈出?

彈出窗口即將到來,我想點擊「允許」。如何將焦點移動到新的彈出窗口並點擊允許。

任何人都可以幫我解決上述問題嗎?

+1

您可以使用alert api處理此問題。使用driver.switchTo()。alert()。accept。這將模仿點擊確定按鈕。 – Vinay

+0

我不認爲警報API可以處理Java彈出窗口。這很可能會失敗。不幸的是,Selenium無法處理它,你需要嘗試一些其他工具 - 最粗俗的是['Robot'](http://docs.oracle.com/javase/7/docs/api/java/ awt/Robot.html)類,更高級的例如[AutoIt的](http://www.autoitscript.com/)。 –

+0

您可以使用Java的ROBOT類並單擊彈出。 – Hemanth

回答

7

我在接受Java小程序的問題「允許」

我的解決方案是創建一個Firefox的配置文件,必須設定始終激活插件:

FirefoxProfile fp = new FirefoxProfile(); 

fp.setAcceptUntrustedCertificates(true); 

fp.setPreference("security.enable_java", true); 

fp.setPreference("plugin.state.java", 2); 

WebDriver d = new FirefoxDriver(fp); 

凡plugin.state.java :

plugin.state.java = 0 --> never activate 
plugin.state.java = 1 --> ask to activate 
plugin.state.java = 2 --> always activate 

這可能讓你更接近...

0

硒lenium使用了不同的firefox配置文件,因爲Java對我來說是非活動的,我沒有在Firefox瀏覽器Selenium啓動時使用我的firebug插件。我將不得不打開另一個Firefox來使用Firebug。

我通過在開始菜單中搜索%appdata%然後點擊Roaming/Mozilla/Firefox/Profile /,然後它給出了我的默認配置文件名稱,找到了我的默認Firefox配置文件。

你也可以打開Firefox幫助菜單(?標誌)&單擊疑難解答信息...點擊查看配置文件文件夾

然後我所以Java啓用和螢火蟲的是可配置硒用我的默認配置文件瀏覽器硒推出:

確保您使用「/」硒即使它可能在windows路徑位置使用「\」

fp = webdriver.FirefoxProfile('C:/Users/xxx/AppData/Roaming/Mozilla/Firefox/Profiles/41s7nq9o.default') 
driver = webdriver.Firefox(fp) 
driver.get('www.stackoverflow.com') 

其中41s7nq9o.default是默認PROFI名le