无法访问document.body。这个HTML页面是否已满载?这是我用硒RC得到的错误。我正在研究testNG框架,我在Eclipse中用java编写测试脚本。我使用Selenium RC来执行我的测试脚本。 这是我在编辑窗口上点击保存按钮后得到的错误。虽然我在点击保存和下次通话之间使用了Thread.sleep(“1000”) 我的代码看起来像
selenium.click(saveButton);
Thread.sleep(sleep);
while(selenium.isTextPresent("Processing ..."))
Thread.sleep(sleep);
我在(selenium.isTextPresent(“Processing ...”))行中收到错误。
答案 0 :(得分:1)
在selenium.click(saveButton)
之后,而不是可能不是正确时间的Thread.sleep(sleep)
之后,您应该selenium.waitForPageToLoad(...)
。
答案 1 :(得分:0)
你可以尝试不同的等待声明。 waitForTextPresent,WaitForElementPresent。这样,硒知道要等多少,等待什么。你也可以点击并等待......
答案 2 :(得分:0)
实际上我有一个类似的问题,在selenium用户组的论坛上进行一些搜索后决定Ajax调用会导致这种情况,AJAX页面加载需要一些时间但是Selenium
正在尝试转到下一个命令而不等待之前的呼叫
完成。 selenium.waitForPageToLoad(10000)
不等AJAX,首先我尝试一下
在Ajax调用之后,命令之间的速度提升
在检查文本之前。但在阅读了关于selenium tests http://zurmo.org/wiki/selenium的博客文章后,我决定添加selenium.waitForCondition()方法来等待jQuery加载。我现在使用这个结构:
selenium.waitForPageToLoad(10000);
selenium.waitForCondition("typeof selenium.browserbot.getCurrentWindow().jQuery == 'function'", "10000");
Thread.sleep(1000L);
Assert.assertTrue("Warning Message", selenium.isTextPresent("elementText"));
博客帖子建议
直接转到网址的模式
打开 - myURL
waitForPageToLoad
waitForCondition - selenium.browserbot.getCurrentWindow()。jQuery.active == 0( 我在这里更改为“typeof selenium.browserbot.getCurrentWindow()。jQuery =='function'”这对我有用。 )
但我强烈建议您阅读博文。