Элемент селена не виден, исключение: несмотря на использование правильного XPATH и установку точки останова для ожидания отображения элемента в HTML - PullRequest
0 голосов
/ 19 февраля 2020

$x("//input[contains(@id,'default-column')]") - возвращает 10 элементов

public List<WebElementFacade> defaultFieldsCheckBox;

$x("(//input[contains(@id,'default-column')])[1]") - возвращает 1 элемент

public WebElementFacade firstFieldsCheckBox;
  • "Customize Click" открывает список чеков ящики

  • Флажки отображаются в представлении после «Настроить клик»

  • Я даже поставил точку останова после «Настроить клик», чтобы обеспечить проверку -поле отображаются (см. изображение) () создает исключение NoSuchElementException: элемент невидим 10 вместо ошибки Элемент не виден

  • Есть идеи относительно моей проблемы ??

Отображение флажка в HTML

Изображение HTML Добавлено

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

На вопрос ответил scilence - Спасибо !!

Спасибо, scilence, это сработало, и это решение!

WebElement input = mpAuthPage.defaultFieldsCheckBox.get (i) .findElement ( By.xpath ("previousing: input [1]"));

String isChecked = input.getAttribute ("checked");

System.out.println («Флажок» + getText (mpAuthPage.defaultFieldsCheckBox.get (i)) + «Проверено» + isChecked);

0 голосов
/ 20 февраля 2020

Это на самом деле довольно сложно. Класс custom-checkbox делает сам флажок ввода скрытым, поэтому с ним нельзя взаимодействовать.

Вместо этого вы должны попытаться нажать на метку , например

//label[text() = '{Text of Label}']
* 1007. * Вы также можете нацелить их по атрибуту for, чтобы получить их все за один снимок, подобный этому
//label[contains(@for, 'default-column')]

Редактировать: Основываясь на вашем комментарии, я обошел это по

@driver.find_element(:xpath, "//label[contains(text(), '{label text}')]/preceding::input[1]").attribute("checked")

Это ruby код. Вы не упомянули явно, с каким языком вы работаете (я его не узнаю), но вы должны иметь возможность довольно легко преобразовать его.

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