Нажатие клавиш в браузере (selenium)

182
21 июля 2019, 02:50

Использую Selenium для прохождения регистрации на сайте, имеется кнопка(вот вся информация по ней):

<a class="nav-link biz-btn-solid" href="/signup">Регистрация</a>

За что тут ухватиться? ClassName почему-то не работает:

IWebElement button = driver.FindElement(By.ClassName("nav-link biz-btn-solid"));
Answer 1

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'));

и главное -- малая вероятность что линк на эту страницу изменится. А значит... А значит что вероятность что нечаянно поламается тест -- минимальная.

Answer 2

Попробуй убрать пробел из названия класса и оставить только часть. У меня где-то такое работало. IWebElement button = driver.FindElement(By.ClassName("nav-link"));

READ ALSO
C# версия джавовского .in() метода

C# версия джавовского .in() метода

Столкнулся с проблемойЕсть решение моей проблемы для джавы:

160
Как сослаться на объект из одного скрипта в другом

Как сослаться на объект из одного скрипта в другом

Есть скрипт Tile в котором находится метод ExplodeExternal() и есть ещё один скрипт Grid в котором хранится List minedTilesКак обратиться к членам minedTiles из скрипта...

193
c# оптимальный вариант базы данных

c# оптимальный вариант базы данных

нужно вести базу клиентовпрограмму для запросов напишу сам

198
ContextMenu не скрывается при выполнении команды

ContextMenu не скрывается при выполнении команды

Использую библиотеку HardcodetWpf

155