我有多个类似的网站(相同的布局,只是不同的数据),每个网站都有鼠标悬停的下拉菜单(并在鼠标移出时消失)。
我正在使用Selenium 2和WebDriver,我有一个selenium测试用例基本上是鼠标悬停,并确保下拉菜单中的每个链接都有效。
我正在使用selenium网格,所以我有一个集线器和很少的测试机器。
因为我有很多站点(几百个)要测试,所以我想让每台机器并行运行多个站点的测试用例。
我担心的是,因为一次只能有一个活动浏览器,如果网络驱动程序尝试在几个同时在多个浏览器上执行Action.moveToElement(),是否会引起问题?只有活动浏览器才能正确执行Action.moveToElement()而其他浏览器会失败吗?如果存在问题,是否有解决方法?
答案 0 :(得分:1)
我使用JUnitCore.runClasses(ParallelComputer.classes(), SomeClass1.class, SomeClass2.class, SomeClass3.class);
尝试了它,在计算机上运行三次测试时,它将通过的测试百分比从100%降低到约67%。不好= /。
好的部分 - Firefox实际上可以并行执行。如果FF实例之间相互延迟,因此它们不会同时执行相同的操作,则效果会更好。在Firefox启动期间发生了一些故障 - 因此,如果您可以最小化关闭和打开窗口,请执行此操作。但是,有时它只是失败了。
如果你真的会使用节省的时间,那就去吧,记录所有失败的测试并在第一轮之后再次运行 - 这次是一次一次。
答案 1 :(得分:0)
您也可以通过不使用带有鼠标移动点击的Action类来解决此问题,具体取决于您的最终测试目标,而是使用WebDriver findBy-click方法或Javascript执行器方法。在同时运行多个窗口时,它可能不那么有争议。如果Action类在定义鼠标移动时,根本就使用本机调用,例如“移动到Point”,然后一个浏览器在另一个浏览器的顶部,那么我猜测移动点可能会被另一个窗口掩盖。我真的不确定这个,只是给你另一个想法尝试。