继续按钮 - 动态值



我有 3 个注册页面,每个页面都有继续按钮。我想对所有 3 个页面使用一种方法,但它们具有相同的 xpath 和不同的 id。 例如 首页路径://div[@id='personalInfo']//button[@class='btn btn-primary btn-block'][contains(text(),'Continue')]

第二页 第xpth://div[@id='AccountInfo']//button[@class='btn btn-primary btn-block'][contains(text(),'Continue')]

请让我知道我如何使用动态,就像我使用或用于@id但适用于第一页,但在第二页中它说找不到元素。

谢谢

我用了 or @id但为第一页工作,但在第二页它说找不到元素。

首页路径://div[@id='personalInfo']//button[@class='btn btn-primary btn-block'][contains(text(),'Continue')]

第二页 xpath://div[@id='AccountInfo']//button[@class='btn btn-primary btn-block'][contains(text(),'Continue')]

你可以使用它。它将始终单击带有文本"继续"的按钮。

driver.findElements(By.tagName("button")).stream().filter(e -> e.getText().equals("Continue")).findFirst().get()
.click();

选项# 1 - 您可以简单地查找带有文本的按钮 - 如果它在您的页面上是唯一的,请继续。

"//button[contains(text(),'Continue')]"

选项#2:只需像这样使用OR运算符组合id,

"//div[@id='preferences' or @id='accountInfo' or @id='personalInfo']//button[contains(text(),'Continue')]"

最新更新