Selenium Firefox打开超时

goo*_*gic 5 firefox selenium

使用Windows 2008,C#,Firefox 3.5.1,Selenium RC(v1.0.1)

当它工作时,此代码执行非常快,页面加载在.5秒内.

但是,在3-5次迭代后,会话似乎总是失败.open命令将导致生成一个窗口,但不会加载任何页面.最终返回超时异常.页面实际上没有超时.相反,就好像URL的请求从未到达浏览器窗口.

class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                var s = new DefaultSelenium("localhost", 4444, "firefox", "http://my.server");
                s.Start();
                s.SetSpeed("300");
                s.Open("/");
                s.WaitForPageToLoad("30000");
                s.Type("//input[contains(@id, '_username')]", "my.test");
                s.Type("//input[contains(@id, '_password')]", "password");
                s.Stop();

            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Nei*_*eil 2

我有一个类似的设置(Firefox 3.6.15、Selenium RC 1.0.1,但在 WinXP 上并使用 Python 库),并且我正在使用几个站点 - 一个站点在正常使用中自然容易超时(例如,通过人类用户),而其他人通常不是。那些看起来慢一点但容易超时的程序在通过 RC 运行时比由人运行时要慢得多 - 它不会总是超时,但发生率要常见得多。

我对此的有限心理模型是,不知何故,RC 正在执行的额外步骤(与浏览器通信,检查它在返回的页面中看到的内容等)以某种方式为页面加载的每个步骤添加了一点,然后在某些时候它们会把它推到边缘。显然这过于简单了,我只是没有时间进行适当的调查。

另外,我确实倾向于注意到问题随着时间的推移而变得更糟,这与OP所看到的有点吻合(即第一次工作但在3-5次尝试后不再工作)。通常重新启动似乎可以解决问题,但如果没有适当的调查,我无法说出为什么这会有所帮助,也许它以某种方式释放内存(机器用于其他事情),分配给我们公司的另一个代理或还有一些我没有考虑过的事情。

所以......这里没有太多完整的答案(评论会更合适,但我的登录还不能),但至少它强调你不是唯一的一个。定期重新启动是一件烦人的事情,但在没有任何更明智的分析和答案的情况下,也许它们值得一试?