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

lud*_*d0h 4 selenium browser-automation selenium-ide

我们正在使用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
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Pet*_*ček 6

通过这篇博文Selenium FAQ:

这基本上是同源策略的问题,这是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)没有这个限制.