Сверить 2 элемента Selenium C#

183
19 сентября 2018, 09:30

Доброго времени суток!

Имеется кнопка с 2 состояниями: активное и неактивное (кликнули - еще не кликнули).

Найдены по CssSelector:

IWebElement abcd = driver.FindElement(By.CssSelector("is-active"));
IWebElement zxy = driver.FindElement(By.CssSelector("is-not-active"));

При неактивном(is-not-active) необходимо кликнуть по ней. Делаю это с помощью:

Actions press = new Actions(driver);
        press.MoveToElement(zxy).Build().Perform();
        press.Click(zxy).Build().Perform();

При активном состоянии(is-active) необходимо просто закрыть окно.

Как правильно сверить эти 2 состояния? if-else что-то не работают с элементами Selenium :)

Answer 1

Вам следует искать кнопки по более постоянным критериям, которые не изменяются в зависимости от состояния. Дальше следует делать проверку класса, что он содержит is-active.

IWebElement button = driver.FindElement(By.CssSelector("button"));
if(button.GetAttribute("class").Contains("is-not-active"))
{
    button.Click(); //Этот клик более стабилен и выдаст исключение если кликнуть не удастся
}
READ ALSO
Как правильно построить базу данных при большом количестве опциональных параметров?

Как правильно построить базу данных при большом количестве опциональных параметров?

Делаю базу данных для доставки цветов с возможностью самовывоза, возникла задача в отделении логики доставки от обработки заказовНа данный...

185
.load и запрет от прямого доступа

.load и запрет от прямого доступа

Хочу подгрузить php файл, но данный файл у меня закрыт глобальной переменной от прямого доступа

192
PHP DateTime локальное время

PHP DateTime локальное время

Подскажите как установить локальное время в библиотеке DateTime

170