4

我们正在使用 Selenium(用于 Firefox)进行一些自动化,并录制了一个脚本来播放。在提供者进行一些新的更改之前,这一切正常。现在我们得到以下错误,不知道这意味着什么......

    [info] Executing: |waitForPopUp | LookuphdnProductId1 | 40000 |
  -->[error] Permission denied for <https://books.zoho.com> to get property HTMLDocument.readyState
    [info] Executing: |selectWindow | name=LookuphdnProductId1 | <br/>
  -->[error] Unexpected Exception: fileName -> chrome://selenium-ide/content/selenium-core/scripts/selenium-browserbot.js, lineNumber -> 840

任何有浏览器自动化或 Selenium 经验的人都会给出一些提示?

谢谢

4

1 回答 1

6

通过这篇博文Selenium 常见问题解答

这基本上是同源策略的问题,这是 Selenium RC(因此也是 Selenium IDE)的设计限制。问题是 Selenium 将所有命令作为 Javascript 运行 - 并且 Javascript 不能跨域运行。但是您显然在测试中的某个地方更改了域。

你不要在某个地方尝试打开这样的地址:http://www.somedomain.com/link=www.google.com?如果是,您可能想立即打开http://google.com。如果您单击具有此类 href 的链接,请尝试挖掘链接并在脚本中“手动”打开 url。或者将 Firefox 与一些插件一起使用,我已经看到了一些。

如果只是重定向到另一个网站/域,那么您就处于困境中。如果您开始foo.com并通过某个链接重定向到,bar.org那么您不得使用该andWait命令并bar.org在脚本中再次手动打开(因此它在该域上运行并具有正确的访问权限)。

顺便说一句,Selenium 2 (WebDriver) 没有这个限制。

于 2012-04-26T08:55:37.257 回答