Java Selenium:如何通过LinkText查找按钮的xpath?

Java Selenium:如何通过LinkText查找按钮的xpath?,java,selenium,xpath,selenium-webdriver,automation,Java,Selenium,Xpath,Selenium Webdriver,Automation,一个页面中基本上有3种类型的保存按钮。现在,我尝试单击的按钮是一个type=“button”,其余的保存类型没有定义为type=“button”。对于所有三个保存按钮LinkText都定义为保存。那么,有没有办法通过linkText点击type=“button” HTML: 保存 我试过的代码: List<WebElement> list = Util.getWebDriver().findElements(By.xpath("//*[text()='Save']")); Syst

一个页面中基本上有3种类型的保存按钮。现在,我尝试单击的按钮是一个
type=“button”
,其余的保存类型没有定义为
type=“button”
。对于所有三个保存按钮
LinkText
都定义为保存。那么,有没有办法通过
linkText
点击
type=“button”

HTML:

保存
我试过的代码:

List<WebElement> list = Util.getWebDriver().findElements(By.xpath("//*[text()='Save']"));
System.out.println("SaveButton"+list.size()); ///Returning 3 save button in a page
list.get(3).click();
List List=Util.getWebDriver().findElements(By.xpath(“/*[text()='Save']”);
System.out.println(“SaveButton”+list.size())///返回页面中的3个保存按钮
list.get(3).单击();
现在,假设在一个页面中有4个保存按钮,在另一个页面中有3个保存按钮。因此,不可能创建一个方法,因为每个时间索引都会不同

如果有任何方法可以通过
type=“button”
查找
xpath
。对我来说,创建一个方法并在每次单击
“Save”
时调用它将很容易

如果需要澄清,请告诉我

有没有办法通过linkText单击type=“button”

实际上是用来定位

我尝试单击的按钮是一个
type=“button”
,其余类型的保存未定义为
type=“button”

正如您所说,只有desire按钮包含属性
type=“button”
,因此使用其他定位器很容易找到该元素,如下所示:-

  • :

    • 按钮[type='button']
    • 按钮[type='button'][ng click='updateUser()']
    • button.btn.btn-md.bgm-blue.waves效果[type='button'][ng click='updateUser()']
  • :

    • //按钮[text()='Save'和@type='button']
    • //按钮[.='Save'和@type='button']
    • //按钮[text()='Save'和@type='button'以及@ng click='updateUser()']
    • //按钮[.='Save'和@type='button'以及@ng click='updateUser()']

由于
保存
按钮包含
属性,您可以按如下方式构造
xpath

findElements(By.xpath("//button[@class='btn btn-md bgm-blue m-r-10 waves-effect'][contains(text(),'Save')]"));

完美的解释。如果我使用该方法并在任何地方使用它,那么下面的xpath代码都会起作用-
//button[.='Save'和@type='button']
我认为selenium不支持复合类名。
findElements(By.xpath("//button[@class='btn btn-md bgm-blue m-r-10 waves-effect'][contains(text(),'Save')]"));