Android WebDriver。 XMLHttpRequest 无法加载“URL”。 Access-Control-Allow-Origin 不允许来源“URL”。为空:1

问题描述 投票:0回答:3

我正在使用 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
  • URL1 - 基于json的后端;
  • URL2 - 前端。

FireFox、Chrome、IE 10 不会出现此错误。但 Android 上的 WebDriver 总是会出现此错误。因此无法登录系统。 WebDriver 可以点击、发送按键等

所以问题是:是否有任何解决方法可以避免这个问题?可能我应该为 WebDriver 更改一些设置?可能有人以前遇到过类似的事情。我很感激任何建议。

我尝试过 apk 2.21.0 和 2.32.0。

java android json webdriver
3个回答
3
投票

看看这个。

XMLHttpRequest 无法加载“URL1”。 Access-Control-Allow-Origin 不允许来源“URL2”。空时:1

添加以下代码,应用程序将正确运行。

if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
  webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}

所以,基本上这是因为 jquery、Json

无法访问
而发生这种情况。


1
投票

我有时会遇到这个问题,通常您可以使用 CORS 功能在服务器中修复它,具体取决于您使用的服务器应用程序/框架,以不同的方式使用此 CORS,但基本上您需要填写您的来自服务器的响应标头正确遵循信息:

URL1

一个非常“开放”的配置是:

Access-Control-Allow-Origin Access-Control-Allow-Methods Access-Control-Allow-Headers



0
投票

我已经在 Android 4.4 的模拟器上进行了相同的测试,一切正常。谢谢大家的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.