【问题标题】:Selenium and webdriver for IE11 not passing ajax callIE11 的 Selenium 和 webdriver 未通过 ajax 调用
【发布时间】:2016-02-05 00:20:20
【问题描述】:

我很难让我的 ajax 调用到达后端。

我在 Windows 8 上使用 webdriver 2.50.1(好吧,我从 2.44 开始全部尝试)

start java -jar selenium-server-standalone-2.50.0.jar -Dwebdriver.ie.driver="C:\\selenium\IEDriverServer.exe" -role node -hub http://192.168.1.2:5555/grid/register 

在 Linux 上使用独立 java 服务器的服务器

java -jar selenium-server-standalone-2.50.1.jar -port 5555 -role hub -debug

但是当我测试应用程序时。前端完成的 Ajax 调用不会传递到后端。

是否有任何设置来允许/禁止 ajax 调用?对于 IEwebDriver 或独立服务器? 谢谢 注意:只有 IE11 给我带来了问题(firefox,chrome 工作正常),但 IE 是远程使用的,其他的是本地的。

【问题讨论】:

    标签: selenium selenium-webdriver automated-tests internet-explorer-11


    【解决方案1】:

    您可能遇到了 CORS 问题。来自同一 URL 的 Ajax 调用是可以的,但如果您从不同的 URL 进行调用,服务器需要使用正确的 CORS 标头进行响应。你可以谷歌很多结果会出现这个。

    【讨论】:

    • 感谢 arisalexis ,我尝试在 Ajax.Request javascript 调用中添加 crossDomain: true ,但这并没有改变任何东西。另外,我现在直接在 Windows 8 机器上运行了 python 测试,我遇到了同样的问题,没有 Ajax 调用。但是如果我使用 firefox 一切都很好。
    • 对于跨域服务器也需要返回正确的标头。如果您没有 ajax 调用,那么这个问题与 ajax 调用无关,您需要重新措辞吗?
    【解决方案2】:

    事实上,问题不在于 ajax 调用,而在于应用程序的登录。 在 chrome 和 firefox 上,我使用 http://user:pass@ip/target 但这并不完全适用于 IE。 使用 IE 我需要删除 user:pass 的 url 并找到另一种登录方式。 虽然这很奇怪,因为 IE 下的应用程序被部分记录但不是 IE 的眼睛? 应用程序(后端)正在登录我们,但不是 IE(浏览器),可能是 IE 的一些额外安全功能??

    【讨论】:

      猜你喜欢
      • 2014-07-10
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      相关资源
      最近更新 更多