1

我是硒的新手。

在我的应用程序中,它有几个选项卡,比如“AAA”、“ABC”、“ADF”;我需要自动单击“ABC”选项卡。

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

请告诉我该怎么做。

下面是我的标签:

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

谢谢

4

5 回答 5

5

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

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

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

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

于 2013-05-29T14:06:49.550 回答
3

欢迎来到 SO!

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

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

我只能同意 Arran 还提到您的开发人员也使用更相关的命名约定。他们让你的工作越轻松,你就能越多地让他们的生活更轻松。

于 2013-05-29T15:47:36.360 回答
1

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

于 2013-05-30T06:04:20.277 回答
0
xpath=//a[contains(@class,"current") and contains(@text,"ABC")]
于 2017-02-14T16:43:02.453 回答
0

最简单的方法是使用 X 路径来查找选项卡。

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

  • Web Driver Element Locator - 下载后,您可以右键单击 Web 元素并选择 X 路径。
  • Selenium IDE - 这是一个记录器,将为您提供与您交互的每个 Web 元素的 X 路径或 CSS。

我建议您开始使用这些工具来帮助您,因为您才刚刚开始。

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

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

'a' - 将在整个页面中搜索单引号中的任何文本 ''

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

于 2017-02-06T20:22:17.223 回答