我是Watir框架的新手,我们有像
这样的代码$browser.link(:xpath, "//a[@href='/servlets/ProcessAction?identifier=createMemberAccountTypes&click1=Accounts_Open']").click
。但这在IE上运行良好,但在Firefox上并不常用。所以我们使用像
这样的东西$browser.span(:text => "Logout").parent.click
但是我们不想为IE编写一个,而为Firefox编写一个。我们应该使用什么?
感谢您的时间。
答案 0 :(得分:3)
我会用:
$browser.link(:text => "Logout").click
:text说明符包括元素及其元素中的所有文本(即包括span中的文本)。因此,您可以直接获取链接,而不是获取范围的父级。
通常的建议是尽可能避免使用xpath。它通常更难阅读并且可能很脆弱。例如,您的xpath被硬编码为查询字符串参数的特定顺序。如果生成的url变为'/ servlets / ProcessAction?click1 = Accounts_Open& identifier = createMemberAccountTypes'(即参数顺序发生变化),则测试将失败。相比之下,“退出”文本似乎不太可能改变。
一般来说,我会说用什么有用。