使用xpath vs span来获取元素(一个用于IE和Firefox但另一个仅用于IE)

时间:2012-12-21 16:35:22

标签: ruby testing watir watir-webdriver regression-testing

我是Watir框架的新手,我们有像

这样的代码
$browser.link(:xpath, "//a[@href='/servlets/ProcessAction?identifier=createMemberAccountTypes&click1=Accounts_Open']").click 

。但这在IE上运行良好,但在Firefox上并不常用。所以我们使用像

这样的东西
$browser.span(:text => "Logout").parent.click

但是我们不想为IE编写一个,而为Firefox编写一个。我们应该使用什么?

感谢您的时间。

1 个答案:

答案 0 :(得分:3)

我会用:

$browser.link(:text => "Logout").click

:text说明符包括元素及其元素中的所有文本(即包括span中的文本)。因此,您可以直接获取链接,而不是获取范围的父级。

通常的建议是尽可能避免使用xpath。它通常更难阅读并且可能很脆弱。例如,您的xpath被硬编码为查询字符串参数的特定顺序。如果生成的url变为'/ servlets / ProcessAction?click1 = Accounts_Open& identifier = createMemberAccountTypes'(即参数顺序发生变化),则测试将失败。相比之下,“退出”文本似乎不太可能改变。

一般来说,我会说用什么有用。