Selenium WebDriver实现之间的区别

时间:2012-11-27 14:47:06

标签: c# internet-explorer google-chrome firefox selenium-webdriver

我最近使用IE WebDriver在Selenium开发了一个示例测试,它在IE浏览器上运行良好。我想知道为什么只需将驱动程序更改为Chrome或Firefox驱动程序而不更改测试代码,相同的测试就可以在Chrome或Firefox上运行。测试没有像在IE上那样工作。

我想知道是否有人知道或可以指向一些显示Web驱动程序实现之间差异的链接?

我会更详细地解释我的测试。

我有一个带有一个Dev Express AspxComboBox的网站。这是一个提前类型组合框,这意味着它最初是空的,当用户输入输入时,组合框会在数据库中查询包含输入文本的数据。它一次显示10个结果。如果用户向下滚动,则会检索更多结果并将其添加到组合框中。

我的测试

  

1)使用给定的URL打开浏览器

     

2)在组合框中输入“a”

     

3)检查10个记录是否已填充。

     

4)使用组合框使用的相同查询并使用相同的查询运行它   过滤。   大段引用   5)将查询结果与组合框内容进行比较。

     

6)选择列表中的第10个元素来模拟滚动和   获得更多结果。

上述测试适用于IE Web Driver。

当我将其更改为Chrome网络驱动程序时,我遇到了计时问题。 Chrome驱动程序似乎比IE Web Driver更快。我使用了适当的等待语句,但它对我不起作用。例如,在文本之后,我等待进入组合框,直到组合框有10个元素。即使此等待成功,Chrome驱动程序也会将组合框中的第一项检索为空。我通过设置一个断点并使测试应用程序等待足够长时间来通过这个问题,然后它工作,但是然后单击列表中的最后一项变得有问题。在IE中我可以说单击第10项,但相同的代码在Chrome Web Driver中生成了一个例外。有人说点击不会出现在所需元素上。

我遇到的上述挑战让我觉得Web驱动程序实现之间存在差异。人们是否同意?

1 个答案:

答案 0 :(得分:0)

我最初在ruby中测试了Firefox,并且使用相同的传递结果在chrome中测试了相同的代码。我确实得到了一些额外的消息,我可以通过删除扩展来关闭它。

为了测试镀铬,你需要你可以在这里获得的镀铬液。

https://code.google.com/p/chromedriver/downloads/list

在你的系统路径中获得它后,只需选择你的毒药;

driver = Selenium::WebDriver.for :firefox 

driver = Selenium::WebDriver.for :chrome

快乐的编码!