2013-05-08 20 views
2

我正在爲Facebook應用程序編寫一些硒webdriver測試。我在Selenium Grid中運行測試,在Opera中運行時發現問題(12.15)。當網絡應用程序在Facebook(或直接)中啓動時,Opera會顯示一個頁面:如何讓Opera在沒有Webdriver測試警告的情況下訪問我的Intranet?

公共互聯網上的一個頁面向您的私有Intranet請求數據。出於安全原因,自動訪問被阻止,但您可以選擇繼續。

我有選擇,然後繼續,或永遠繼續而不再被問。這工作正常,而我手動使用瀏覽器。但Selenium每次都會啓動一個新的瀏覽器實例,因此每次都需要重新選擇首選項。

有沒有辦法在測試運行時抑制這個警告?一個命令行選項?期望的能力?

這似乎是一個其他人會遇到的問題,但我無法找到很多,如果有的話,在線。

回答

2

opera:config顯示選項「允許跨網絡導航」,這是你想要的。它的鏈接似乎鏈接到opera:config#Network|AllowCrossNetworkNavigation,因此我們希望在Network,關鍵AllowCrossNetworkNavigation的首選項,因爲它顯示爲布爾首選項,它將取值01

下一個問題是以編程方式設置它:OperaDriver有一個public OperaScopePreferences preferences()讓你這樣做(請參閱OperaScopePreferences JavaDoc)。

因此,簡而言之:

OperaDriver drv; 
OperaScopePreferences prefs = drv.preferences(); 
prefs.set("Network", "AllowCrossNetworkNavigation", "1"); 
+0

謝謝!我必須稍微改變一下,也許是因爲我使用了RemoteWebDriver。不過謝謝你讓我走上正軌。這裏是我的解決方案:'OperaProfile profile = new OperaProfile(); ()「網絡」,「允許交叉網絡導航」,「1」); \t \t \t desiredCapabilities.setCapability(「opera.profile」,profile);' – 2013-05-13 14:57:08

0

這並不在Opera 33.0的工作。 歌劇:配置已被替換成歌劇://標誌

搜索一小時後,我開始相信這個設置中設置的任何形式將不再存在 : 歌劇:配置#網絡| AllowCrossNetworkNavigation

我能找到的最接近的是: allow-insecure-localhost 但是,這不允許我們的項目在本地主機上運行,​​以允許跨網絡導航。

還做了一些關於「跨網保護」的搜索沒有運氣。

我想說2015年的正確解決方案是使用Firefox或Chrome。

相關問題