Метод isEnabled () всегда возвращает true - PullRequest
0 голосов
/ 30 января 2019

Я хочу получить список строк, для которых установлены флажки.Но когда я использую isEnabled (), он всегда возвращает true даже для отключенных флажков.И в результате я получаю список всех строк, присутствующих в этом поле.

Ниже приведен код, который я написал для него: -

@FindBy(css = "[class *= 'CheckboxTextAligned']")
    private List<WebElement> airportListCheckbox;

public void getEnabledValues() {
        for (WebElement elements : airportListCheckbox) {
            if(elements.isEnabled()==true) {
                for (WebElement airportText : airportListTextName) {
                    airportText.getText();
                    LOG.info(airportText.getText());                
                }
            }       
        }

HTML-код такой, как показано ниже: - для отключенных флажков: -

<label role="checkbox" aria-label="checkbox" class="inputs__CheckboxTextAligned undefined undefined">
<input type="checkbox" disabled checked>
<span class="inputs__box"><svg width="16px" height="16px" class="inputs__checkIcon" viewBox="0 0 1024 1024">
<path d="434z"></path></svg></span>
<span class="inputs__text">London City</span></label>

для включенных флажков: -

<label role="checkbox" aria-label="checkbox" class="inputs__CheckboxTextAligned undefined undefined">
<input type="checkbox" checked="">
<span class="inputs__box"><svg width="16px" height="16px" class="inputs__checkIcon" viewBox="0 0 1024 1024">
<path d="133z"></path></svg></span>
<span class="inputs__text">London Gatwick</span></label>

1 Ответ

0 голосов
/ 30 января 2019

Поскольку вы пытаетесь убедиться, что входной узел включен или отключен, isEnabled () проверяет наличие атрибута disabled на элементе.Если атрибут «отключен» отсутствует, он возвращает True.

Попробуйте следующий код:

@FindBy(xpath = "//label[contains(@class, 'CheckboxTextAligned')]/following::input")
private List<WebElement> airportListCheckbox;

public void getEnabledValues() {
for (WebElement elements : airportListCheckbox) {
    if(elements.isEnabled()) {
        for (WebElement airportText : airportListTextName) {
        airportText.getText();
        LOG.info(airportText.getText());                
        }
    }       
}

Поскольку вы хотите проверить, включен ли входной узел или нет, вам необходимоНемного измените свой локатор, потому что ранее вы пытались проверить, включена ли метка / нет, а не входной узел. Таким образом, вы всегда получаете истину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...