我正在Nexus 10上运行我的自动化测试(Android 4.2)使用Selenium WebDriver和Java.我面临的错误是:
XMLHttpRequest cannot load 'URL1'. Origin 'URL2' is not allowed by Access- Control-Allow-Origin. at null:1
字符串
- URL 1-基于json的后端;
- URL 2-前端
此错误不会发生Firefox,Chrome,IE 10.但它总是发生在Android上的WebDriver.由于它登录到系统不可用. WebDriver能够点击,sendKeys等.
所以问题是:是否存在任何解决方法来避免这个问题?可能是一些设置,我应该改变WebDriver?可能有人面临这样的事情之前。我感谢任何建议。
我已经尝试了APK 2.21.0和2.32.0。
3条答案
按热度按时间smdnsysy1#
看看这个
XMLHttpRequest无法加载“URL 1”。Access- Control-Allow-Origin不允许原始“URL 2”。at null:1
添加以下代码,应用程序将正常运行。
字符串
所以,基本上这是因为
URL1
无法被jquery Json访问。zmeyuzjn2#
由于我不知道你的代码,我将给予你只是一个解释,我认为你可以解决这个问题,请不要把它作为一个真实的的答案,只是给予它一个尝试:)
我有时会遇到这个问题,通常你可以使用CORS功能在你的服务器上解决它,这取决于你使用的服务器应用程序/框架,你以不同的方式使用这个CORS,但基本上你需要从服务器上正确填写响应的头信息:
字符串
一个非常“开放”的配置是:
型
6ljaweal3#
在我的例子中,这是Web套接字的问题。应用程序基于Web套接字。重点是-原生Android浏览器不支持套接字,直到Android 4.4和Selenium完全使用原生Android浏览器执行测试。
我已经测试了相同的模拟器与Android 4.4和一切正常.感谢大家的帮助.