我正在使用 Selenium WebDriver 和 Java 在 Nexus 10 (Android 4.2) 上运行自动化测试。我面临的错误是:
XMLHttpRequest cannot load 'URL1'. Origin 'URL2' is not allowed by Access- Control-Allow-Origin. at null:1
FireFox、Chrome、IE 10 不会出现此错误。但 Android 上的 WebDriver 总是会出现此错误。因此无法登录系统。 WebDriver 可以点击、发送按键等
所以问题是:是否有任何解决方法可以避免这个问题?可能我应该为 WebDriver 更改一些设置?可能有人以前遇到过类似的事情。我很感激任何建议。
我尝试过 apk 2.21.0 和 2.32.0。
看看这个。
XMLHttpRequest 无法加载“URL1”。 Access-Control-Allow-Origin 不允许来源“URL2”。空时:1
添加以下代码,应用程序将正确运行。
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}
所以,基本上这是因为 jquery、Json
无法访问而发生这种情况。
我有时会遇到这个问题,通常您可以使用 CORS 功能在服务器中修复它,具体取决于您使用的服务器应用程序/框架,以不同的方式使用此 CORS,但基本上您需要填写您的来自服务器的响应标头正确遵循信息:
URL1
一个非常“开放”的配置是:
Access-Control-Allow-Origin
Access-Control-Allow-Methods
Access-Control-Allow-Headers
我已经在 Android 4.4 的模拟器上进行了相同的测试,一切正常。谢谢大家的帮助。