Использую Selenium
для прохождения регистрации на сайте, имеется кнопка(вот вся информация по ней):
<a class="nav-link biz-btn-solid" href="/signup">Регистрация</a>
За что тут ухватиться?
ClassName
почему-то не работает:
IWebElement button = driver.FindElement(By.ClassName("nav-link biz-btn-solid"));
Selenium из коробки НЕ умеет работать с computed propertys
(то есть когда указывается несколько значений в некоем проперти, в даном случае с computed class
). Но его можно научить.
Например, даный код:
driver.findElement(By.cssSelector(".class1Name.class2Name"));
ищет по двум значениям класса. Если расширить By
методом ComputedClass(string class)
, сделать риплейс всех пробелов на точки и потом внутри возвратить даный селектор -- будет возможность искать и по компьютед классам. Это один из методов реализации, но не единственный!
Например, можно искать по такому xpath: //a[contains(@class, 'class1Name') and contains(@class, 'class2Name')]
Так же настоятельно советую научится использовать xpath для поиска элементов. Он очень очень очень... Ну прям ОЧЕНЬ удобный. Им можно найти ВСЕ. Обожаю им пользоватся.
В даном случае должно быть что-то вроде:
IWebElement button = driver.FindElement(By.Xpath("//a[contains(@href,'/signup'));
и главное -- малая вероятность что линк на эту страницу изменится. А значит... А значит что вероятность что нечаянно поламается тест -- минимальная.
Попробуй убрать пробел из названия класса и оставить только часть. У меня где-то такое работало. IWebElement button = driver.FindElement(By.ClassName("nav-link"));
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть скрипт Tile в котором находится метод ExplodeExternal() и есть ещё один скрипт Grid в котором хранится List minedTilesКак обратиться к членам minedTiles из скрипта...