Selenium - 拒绝获取属性HTMLDocument.readyState的权限

时间:2012-04-26 08:08:33

标签: selenium selenium-ide browser-automation

我们正在使用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经验的人都会提出一些提示吗?

由于

1 个答案:

答案 0 :(得分:6)

通过this blogpostSelenium FAQ

这基本上是Same origin policy的问题,这是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)没有这个限制。