值得为 Selenium 痛苦吗?Atlassian 开发者 Nick Menere 在 Atlassian 开发者博客(Atlassian Developer Blog)上提出了这样一个特别的问题。 Selenium 是为 Web 应用所提供的测试工具,其直接运行在浏览器中。在他的 blog 中,Menere 表达了对于使用 Selenium 测试 JIRA 3.10 中两个新的 Ajax 特性时所碰到的障碍的看法。这些障碍包括:
键盘事件
显然,selenium.type(…) 并不真正模拟一个用户键入到输入框的动作。参看图片。因此需要我们键入文本并单独触发每个键盘事件——selenium.keyDown(…); selenium.keyPress(…); selenium.keyUp(…);。在 Firefox 中,它起作用了!!……在其他浏览器中,每个字符将会打印两次。
定时
……由于有非可选项目(section label 等等),我们想测试一些元素属性没有被改变。我们发起一个该元素上的鼠标事件,接着用 xpath 定位器检查该元素的属性确实没有变化……这需要在事件发起与测试之间短暂暂停……“新增 / 加大暂停时间”是修正大多数可能失败的测试的常用方法。
鼠标定位问题
为了给用户更好的使用体验,我们决定加入自动滚动特征……在插入 / 加大了一堆暂停之后,我们仍不能使相关测试通过。为什么屏幕滚动造成了测试失败?我们在被选元素而非坐标上发起了事件。构建依然失败……我看到鼠标直接跑到了屏幕的中央,当浏览器窗口滚动时,鼠标被定位到了一个非可选择项目上……怎么修正呢?我安装了 xwarppointer,以使我们通过 bash 来移动鼠标指针,并把鼠标指针塞到一个角落里。
纵观 Menere 的经验教训,最重要的一点是 Selenium 客户端不是一个用户。
查看英文原文: Is Selenium worth the pain?
评论