如果 id 的开头始终相同,是否可以搜索动态按钮



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

按钮的路径如下所示

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

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

我想知道是否有办法只搜索 id 的一部分,以便我可以查找"批准"以找到我需要单击的按钮。

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

你也可以使用 CSS 选择器:

[id^="approve"]

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

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

另请参阅:

  • 选择其属性以 XPath 中的某些内容开头的元素

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

使用第 1 步:根据给定的信息,我假设CSS选择器为:

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

还要寻找按钮的其他属性,这将带来独特性。

第 2 步:

执行 点击按钮

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

相关内容

  • 没有找到相关文章

最新更新