我们正在使用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经验的人都会提出一些提示吗?
由于
答案 0 :(得分:6)
这基本上是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)没有这个限制。