【问题标题】:Using xpath vs span to get elements (one works on IE and Firefox but the other one only in IE)使用 xpath 与 span 获取元素(一种适用于 IE 和 Firefox,另一种仅适用于 IE)
【发布时间】:2012-12-09 06:03:07
【问题描述】:

我是 Watir 框架的新手,我们有类似的代码

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

。但这在 IE 上运行良好,但在 Firefox 上却并非总是如此。所以我们使用类似的东西

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

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

感谢您的宝贵时间。

【问题讨论】:

  • 这两种解决方案都可以在 IE 和 Firefox 中运行。如果您有一个重现问题的示例页面,我们可以帮助您找到它无法正常工作的根本原因。

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


【解决方案1】:

我会使用:

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

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

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

一般来说,我会说使用有效的方法。

【讨论】:

    猜你喜欢
    • 2012-01-27
    • 2012-02-14
    • 2015-05-07
    • 1970-01-01
    • 2014-01-21
    • 2023-03-13
    • 2012-06-23
    • 2014-07-21
    • 1970-01-01
    相关资源
    最近更新 更多