Невозможно добавить визуально скрытые элементы в IList (Selenium, C #) - PullRequest
0 голосов
/ 27 октября 2019

Я не уверен, что эти элементы скрыты, просто название класса говорит об этом. Кроме того, все имена классов включают пробелы (не знаю, как с этим справиться).

Я пытался взять эти элементы, используя CSS Selector, Xpath, ClassName и всегда один и тот же - IList имеет 0 элементов.

IList<IWebElement> input1 = driver.FindElements(By.CssSelector("mat-checkbox-input.cdk-visually-hidden"));

Что я хочу сделать, это добавитьэти флажки в списке перед операцией их проверки, а затем после этой операции, чтобы добавить их в другой список и, в конце концов, подтвердить их сравнение.

<input class="mat-checkbox-input cdk-visually-hidden xh-highlight" type="checkbox" id="stages-9999600009-checkbox-input" tabindex="0" aria-checked="false">
<input class="mat-checkbox-input cdk-visually-hidden xh-highlight" type="checkbox" id="stages-89999600000-checkbox-input" tabindex="0" aria-checked="false">

Dom

Dom

1 Ответ

0 голосов
/ 29 октября 2019

Поиск элементов по className не удастся, потому что Selenium не будет поддерживать имена классов с пробелами

Xpath должен работать, предполагая, что вы написали правильный xpath

Из вопроса, который вы задали CssSelector. Проблема с вашим селектором CSS заключается в том, что вы забыли добавить точку в начале. Имена классов должны иметь префикс с точками, иначе css примет его как tagName.

Вы написали как (By.CssSelector("mat-checkbox-input.cdk-visually-hidden")

Это должно быть (By.CssSelector(".mat-checkbox-input.cdk-visually-hidden")

См.

https://www.softwaretestingmaterial.com/css-selector-selenium-webdriver-tutorial/

https://css -tricks.com / множественные идентификаторы-селекторы /

...