Selenium 继续按钮-动态值
我有3个注册页面,每个页面都有“继续”按钮。我想对所有3个页面使用一个方法,但它们有相同的xpath和不同的id。 如 第一页xpath:Selenium 继续按钮-动态值,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我有3个注册页面,每个页面都有“继续”按钮。我想对所有3个页面使用一个方法,但它们有相同的xpath和不同的id。 如 第一页xpath://div[@id='personalInfo']//按钮[@class='btn btn primary btn block'][包含(text(),'Continue')] 第二页xpth://div[@id='AccountInfo']//按钮[@class='btn btn主btn块][包含(text(),'Continue')] 请让我知道我如何使用
//div[@id='personalInfo']//按钮[@class='btn btn primary btn block'][包含(text(),'Continue')]
第二页xpth://div[@id='AccountInfo']//按钮[@class='btn btn主btn块][包含(text(),'Continue')]
请让我知道我如何使用动态,因为我使用或为@id,但第一页的工作,但在第二页它说元素未找到
谢谢
我对@id使用了or,但在第一页中使用了or,但在第二页中,它表示找不到元素
第一页xpath://div[@id='personalInfo']//按钮[@class='btn btn primary btn block'][包含(text(),'Continue')]
第二页xpath:
//div[@id='AccountInfo']//按钮[@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')]"
谢谢Suresh,没有信息不是id的一部分。下面是我使用chropath 1-//div[@id=“preferences”]//button[@class=“btn btn primary btn block”]找到的确切xpath,第二个是//div[@id=“accountInfo”]//button[@class=“btn btn primary btn block”],第三个是//div[@id=“personalInfo”//button[@class=“btn btn primary btn block”]这是假设匹配的第一个元素是可见的。。。情况可能并非如此。您可以用一个简单的XPath,
//按钮[.='Continue']
替换所有这些代码。完成同样的事情。