Как идентифицировать загрузочный пользовательский элемент управления вводом типа через Selenium - PullRequest
0 голосов
/ 29 сентября 2018

Я пишу веб-приложение с Java.Я тестирую все html-страницы с помощью selenium-java, но у меня проблема с пользовательскими формами , исходящими из начальной загрузки 4

Если углубиться, у меня есть следующий код

<input class="custom-control-input"
       type="checkbox"
       id="registerForm:termsCheckbox"
       border-color:lime" required="true"/>
  <label class="custom-control-label" for="registerForm:termsCheckbox">
     I agree to <a href="terms.html" 
          style="text-decoration:underline; color:lime">terms and conditions
                </a>
  </label>

С этим кодом, несмотря на то, что флажок виден, очевидно, начальная загрузка скрывает элемент управления.А с Selenium я не знаю, как нажать на флажок.Похоже, что видимым флажком является :: before или :: after.

Как я могу выбрать с помощью Selenium загрузочный флажок пользовательского элемента управления типа?

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Чтобы установить флажок , необходимо щелкнуть метку одним из следующих локаторов, а не устанавливать сам флажок.

Флажок сконфигурирован, чтобы быть прозрачным и за меткой следующим css:

.custom-control-input {
    position: absolute;
    z-index: -1;
    opacity: 0;
}
  • CSS:

    label[for='registerForm:termsCheckbox']
    
  • XPATH:

    //label[@for='registerForm:termsCheckbox']
    
0 голосов
/ 29 сентября 2018

Вы можете попробовать выполнить клик по JavaScript.

Вот пример:

public void clickElementWithJS(By locator) {
    String jsClickCode = "arguments[0].scrollIntoView(true); arguments[0].click();";
    try {
        WebElement elementToClick = driver.findElement(locator);
        ((JavascriptExecutor) driver).executeScript(jsClickCode, elementToClick);
    } catch(Exception e) {
        System.out.println("Element could not be clicked.. "  + e.getMessage());
    }
}
...