识别硒中的物体

时间:2013-05-29 14:02:38

标签: selenium automation selenium-webdriver qa

我是硒的新手。

在我的应用程序中,它有几个标签,比如'AAA','ABC','ADF';我需要自动点击“ABC”标签上的点击。

这些标签有ID,它们是'tab1','tab2','tab3'。我可以通过使用id轻松完成此操作。但我不想使用它,因为这些选项卡会不时更改。所以我需要在选项卡中使用该名称,因为它是唯一的。

请告诉我该怎么做。

以下是我的标签:

<a id="tab2" class="current" onclick="expandcontent('sc2', this);" href="#"> ABC </a>

由于

5 个答案:

答案 0 :(得分:5)

如果是这种情况,您可能需要回退到XPath并执行基于文本的搜索,例如:

//a[text()='ABC']

尽管如此,我建议您与开发团队合作,以获得一致的ID。基于文本的匹配很好,但是当你开始使用旧的浏览器时,你会发现它真的会减慢测试速度。

但是,您也可以在语言API中使用.LinkText.PartialLinkText选择器 - 每个API(C#,Ruby,Python等)中都应该有这些选择器的实现。这里的问题是这仅适用于a(锚)元素。但是,提供这是需要完成的唯一类型的元素,您可以使用它而不是XPath。

答案 1 :(得分:3)

欢迎来到SO!

正如Arran所提到的,您最好使用XPath搜索标签名称,但您也可以使用FindBy。这方面的一个例子是:

@FindBy(css=<the CSS value for the tab>)     private WebElement pageTab2;
@FindBy(id="tab2")                           private WebElement pageTab2;

我只能同意Arran所提到的关于开发人员使用更相关的命名约定的内容。他们越容易完成工作,你就越能让他们的生活更轻松。

答案 2 :(得分:1)

最简单的答案是使用...“link = ABC”或link =“ABC”(它有前导和尾随空格)。

答案 3 :(得分:0)

最简单的方法是使用X路径查找标签。

当您开始时,有两个有用的工具可以帮助您找到X路径。下载Mozilla Firefox并获取这两个附加组件:

  • 网络驱动程序元素定位器 - 下载后,您可以右键单击网页元素并选择X路径。
  • Selenium IDE - 这是一个记录器,它将为您提供与您交互的每个网络元素的X路径或CSS。

我建议您从刚刚开始使用这些工具开始帮助您。

至于你的问题:   我建议使用@Arran所说的......

//a[text()='ABC']

&#39; a&#39; - 将在整个页面中搜索单引号中的任何文字&#39;&#39;

如果您右键单击元素或选项卡,然后选择检查。然后,您将在页面的后端查看有助于识别每个不同元素的类或div。

答案 4 :(得分:0)

xpath=//a[contains(@class,"current") and contains(@text,"ABC")]