如何基于Selenium建立可靠的并行浏览器环境

时间:2016-01-22 16:15:12

标签: c# google-chrome firefox selenium teamcity

我在为基于Selenium的UI测试构建可靠的环境时遇到了一些麻烦。我们已经尝试过Selenium Grid +最新的Firefox(+ 41.x),最新的Chrome,但是由于这些(或构建),它们总是存在悬挂浏览器和失败测试的一些问题。 SeleniumDriver也是最新的(nuget 2.49.0)。

我还可以提到一些疯狂的事情,即使这一切我们仍然无法使浏览器全屏显示测试是从Team City工作开始对抗Selenium网格:

firefoxDriver.Manage().Window.Maximize();
//Make Firefox fullscreen for TeamCity agent's runs
((IJavaScriptExecutor)firefoxDriver).ExecuteScript(
                            "window.resizeTo(screen.width, screen.height)");
firefoxDriver.Manage().Window.Position = new Point(0, 0);
firefoxDriver.Manage().Window.Size = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
firefoxDriver.FindElement(By.CssSelector("body")).SendKeys(Keys.F11);

我们还试图通过在虚拟机上安装团队城市代理来本地运行测试(我们使用Azure) - 仍然是同样的问题 - 可能更糟糕......

在每次测试之前,我们都会启动新的浏览器,之后我们将其停止:

Driver.Close();
Driver.Dispose();
Driver.Quit();

但它们仍然是一些未停止/挂起的浏览器...

从Visual Studio 1 by 1 (不是套件)本地执行时,一切正常。

有什么建议我们可能做错了吗?

完全是浏览器故障吗?如果是,我们可以使用什么?我想尝试PhantomJS(Ghostdriver),但它有点过时,并有另一组问题。还有其他选择吗? IE 11也有问题 - > Selenium Server error: Unable to get browser这对我们来说并不适用。

更不用说像5个下拉菜单这样的东西可以自动化,但第6个不能在Firefox中运行,但可以在Chrome上运行,反之亦然。

此外,我感觉Azure VM真的很慢,也许真正的机器会有所帮助(请记住,即使在我的机器上,如果我使用团队城市命令浏览器也会挂起)。

我非常确定其他人也会遇到所有这些问题,并希望能够分享一些我认为对其他人有帮助的指导以及Selenium UI测试的稳定自动化环境。

1 个答案:

答案 0 :(得分:1)

尝试在selenium官方网站下查看更改日志,并使用彼此兼容的浏览器和selenium。之后,您可以使用代码进行设置和登录。