Selenium:如何识别按钮 WebElement

软件测试 自动化测试 网络驱动程序 硒网络驱动程序 硒2
2022-01-20 13:20:26

在我的网页中,我有以下两个按钮:

<button onclick="addToSelected('newApplicationForm');">Add Strategy</button>

<button onclick="submitAddNewApplication('newApplicationForm');">Submit</button>

如何使用By类的方法识别它们?

4个回答
By.xpath("//button[contains(.,'Add Strategy')]")
By.xpath("//button[contains(.,'Submit')]")

请注意,它与以下内容相同:

By.xpath("//button[contains(text(),'Add Strategy')]")
By.xpath("//button[contains(text(),'Submit')]")

例如...登录按钮在登录屏幕上可用...

//Click on Login

WebElement click = driver.findElement(By.xpath("//*[@id='btnLogOn']"));

click.click();

此处的 xpath 示例将起作用 - 但您也可以使用 css 选择器来匹配“onclick”属性的内容。

By.cssSelector("button[onclick^=addToSelected]")
By.cssSelector("button[onclick^=submitAddNewApplication]")

在这种情况下,我使用了“starts with”属性选择器,但您可以使用“contains”选择器来代替 ( *=)

是的,正如 Tarun 所说,您可以使用 xpath,但在我们的项目中,开发人员通常需要为每个元素添加 ID。因为,有时 UI 或文本可能会发生变化,那么您必须修改您的测试脚本。