Selenium远程服务器连接被拒绝

时间:2015-03-19 13:18:34

标签: selenium-rc

我在Windows 7 64位盒子上运行了Visual Studio 2008 Team System C#解决方案,它有大约200个Selenium测试。

直到一小时前,大多数测试都没问题,但突然 none 测试将会运行。他们都给出了同样的错误:

System.Net.WebException: Unable to connect to the remote server --->  System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:4444.

我使用selenium-server-standalone-2.45.0,安装在... \ Program Files(x86)\ selenium-remote-control-2.45.0

这已经发生了,我无法理解可能发生的变化。产生错误的代码(多年来一直保持不变并且通常非常可靠)是:

        public static ISelenium CreateDefaultSelenium()
        {
            string browser = ConfigurationManager.AppSettings["UnitTestBrowserString"];
            if (browser == null)
                browser = "*iexplore";
            ISelenium selenium = new DefaultSelenium("localhost", 4444, browser, "http://localhost/");
            return selenium;
        }

    public static void Start(this ISelenium selenium, int tries)
    {
        // Start the browser with a new Selenium session. Catch any WebException (eg socket refused) and retry a few times.
        bool started;
        int tryCount = 0;
        do
        {
            tryCount++;
            try
            {
                selenium.Start(); //<--this fails with the WebException
                started = true;
            }
            catch (System.Net.WebException)
            {
                started = false;
                if (tryCount >= tries)
                    throw;
            }
        } while (!started);
    }

//start selenium at the beginning of each test:
ISelenium selenium = CreateDefaultSelenium();
selenium.Start(5);

并抛出一个WebException,其中包含我上面复制的错误消息。

我确保我的本地Windows防火墙端口4444打开了内部TCP和UDP(通常不是这样),但这并没有解决问题。如果我自己运行Web应用程序,它运行正常,因此IIS没问题,尽管VS正在使用自己的网络服务器。重新启动没有任何改进。

任何人都可以建议可能导致此更改的内容吗?我不知道下一步该转向何方。

TIA

1 个答案:

答案 0 :(得分:1)

好的,事实证明,在Selenium日志文件中有一组锁文件(selenium.log.1.lck等)。删除这些立即解决了这个问题。

Selenium团队是否有机会将此宝石添加到Selenium文档中?我花了几天时间才能找到这个解决方案!