我如何允许Opera在没有Webdriver测试警告的情况下访问我的内网?



我正在为一个Facebook应用程序编写一些selenium webdriver测试。我在Selenium Grid中运行测试,并且在Opera(12.15)中运行时看到了一个问题。当web应用程序在Facebook上启动时(或直接),Opera显示一个页面:

公共互联网上的页面从您的私有内部网请求数据。出于安全原因,自动访问被阻止,但您可以选择继续。

我可以选择继续,或者在不被要求的情况下继续。当我手动使用浏览器时,这工作得很好。但是Selenium每次都会启动浏览器的一个新实例,因此每次都需要再次选择首选项。

是否有办法在测试运行时抑制此警告?命令行选项?DesiredCapability吗?

这似乎是其他人会遇到的问题,但我在网上找不到太多,如果有的话。

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");

这在Opera 33.0中不起作用。Opera:config已被Opera://flags

取代

搜索了一个小时后,我开始相信这个设置已经不存在了以任何形式:歌剧:配置#网络| AllowCrossNetworkNavigation

我能找到的最接近的是:allow-insecure-localhost但是,这不允许我们的项目在本地主机上运行,允许跨网络导航。

我也搜索了一下"跨网络保护",没有运气。

我认为2015年正确的解决方案是使用firefox或chrome。

相关内容

最新更新