code: public void clickButtonWithText(String text) {
          String caseInsensitiveButtonText = seleniumElementService.constructCaseInsensitiveContains("text()", text);
          By buttonPpath = By.xpath("//button[" + caseInsensitiveButtonText + "]");
          String caseInsensitiveValueText = seleniumElementService.constructCaseInsensitiveContains("@value", text);
          By submitPath = By.xpath("//input[@type='submit'][" + caseInsensitiveValueText + "]");
          By inputButtonPath = By.xpath("//input[@type='button'][" + caseInsensitiveValueText + "]");
          By inputResetPath = By.xpath("//input[@type='reset'][" + caseInsensitiveValueText + "]");
          WebElement foundButton = seleniumElementService.findExpectedFirstMatchedElement(buttonPpath, submitPath, inputButtonPath, inputResetPath);
          if (foundButton == null) {
              foundButton = seleniumElementService.findExpectedFirstMatchedElement(2, buttonPpath, submitPath, inputButtonPath, inputResetPath);
          }
          foundButton.click();
      }
docs: find and click a button or input containing the passed text. Will return the first match where an input take presedence
  over a button
  @param text which should be contained on the button
  @throws AssertionError if no button with this text is found