使用Selenium拍摄屏幕截图:WaitForPageToLoad等待的时间不够长

使用Selenium拍摄屏幕截图:WaitForPageToLoad等待的时间不够长,selenium,selenium-rc,Selenium,Selenium Rc,我正在尝试从具有多个浏览器的网页中获取屏幕截图。在尝试Selenium RC时,我编写了如下代码: var sel = new DefaultSelenium(server, 4444, target, url); sel.Start(); sel.Open(url); sel.WaitForPageToLoad("30000"); var imageString = sel.CaptureScreenshotToString(); 这基本上是可行的,但在大多数情况下,屏幕截图是一个空白的浏览

我正在尝试从具有多个浏览器的网页中获取屏幕截图。在尝试Selenium RC时,我编写了如下代码:

var sel = new DefaultSelenium(server, 4444, target, url);
sel.Start();
sel.Open(url);
sel.WaitForPageToLoad("30000");
var imageString = sel.CaptureScreenshotToString();
这基本上是可行的,但在大多数情况下,屏幕截图是一个空白的浏览器窗口,因为页面还没有准备好显示。如果我在WaitForPageToLoad之后添加一个睡眠,这会有点效果,但这会减慢快速浏览器的速度和/或可能是较慢浏览器(或加载不足)的缩写

一个典型的解决方案似乎是等待某个元素的出现。然而,这是一个简单的通用解决方案,可以获得尽可能多浏览器的本地网页的屏幕截图(以测试布局),我不想输入某些元素名称或其他内容。这是一个简单的工具,您只需输入Selenium服务器URL和要测试的URL,然后返回屏幕截图


有什么建议吗?

我使用Selenium RC捕获等待时间不同的远程页面的屏幕截图。在这种情况下,检查页面标题并使用time.sleep(n秒)通常会为我执行此操作。

可能您可以使用浏览器状态栏验证该页面是否已完全加载。我认为这是最好的解决方案。

我刚刚试用了Selenium Server 2.0 Alpha 5,它似乎在Opera、Internet Explorer和Chrome中都能工作。不过,它在Firefox上的工作并不可靠。唉。我面临着同样的问题,不知道如何检查尚未显示的页面。我可以通过使用“IsElement present”来设置对象的等待点,但在selenium中并没有“window exist”命令时,如何设置窗口的等待点。我正在使用:selenium.SelectWindow(“windownme”);selenium.IsElementPresent(“对象”);`由于第二个窗口需要时间加载,我的代码失败。我将selenium RC与C#一起使用。