0

我在一些自动化测试中使用 Selenium。在某个页面上,我需要单击一个按钮。同一个页面被多次使用,当我最初尝试使用完整的 xpath 时,它可以在其中一个页面上工作,但不能在另一个页面上工作。每个页面的完整 xpath 略有不同,所以我不想使用它。

按钮的 xpath 如下所示

.//*[@id='approve-gen8149262f2cdc49958632185c33b8e82f']

在这两个页面上,id 总是以批准开头,然后得到一些生成的数字。

我想知道是否有一种方法可以仅搜索 id 的一部分,以便我可以查找“批准”以找到我需要单击的按钮。

到目前为止,我已经尝试了很多没有运气的事情。

4

4 回答 4

3

您还可以使用 CSS 选择器:

[id^="approve"]
于 2014-01-17T08:01:06.687 回答
1

使用 XPath,您可以选择其中一个属性以给定字符串开头的元素。例如:

//*[starts-with(@id, "approve-gen")]

也可以看看:

于 2014-01-17T05:12:06.950 回答
0

Use Step 1: From the Given Info I have assumed the CSS Selector as

css=button[id*='approve-gen']

Also look for the Other Attributes of button that will bring uniqueness.

Step 2:

Perform Click on the button

driver.findElement(By.cssSelector("button[id*='approve-gen']")).click();

于 2014-04-04T07:45:15.803 回答
0

您还可以将 xpath 与包含一起使用。例如。 //*[contains(@id, 'approve-gen')] 确保没有其他 id 以“approve-gen”开头的定位器。

于 2014-01-17T12:08:34.423 回答