Size: a a a

Selenide на русском

2020 April 17

EM

Eduard Meshchanchuk in Selenide на русском
Всем привет, в виде ::before у нас отобраается "квадратик" подскажите пожалуйста могу ли я как то кликнуть по квадратику средствами селенид ?
источник

AV

Alexei Vinogradov in Selenide на русском
Eduard Meshchanchuk
Всем привет, в виде ::before у нас отобраается "квадратик" подскажите пожалуйста могу ли я как то кликнуть по квадратику средствами селенид ?
чаще всего срабатывает просто клик на вышестоящий label.
источник

EM

Eduard Meshchanchuk in Selenide на русском
Alexei Vinogradov
чаще всего срабатывает просто клик на вышестоящий label.
Всегда выбирается середина объекта.... соответственно середина это ссылка ТЕРМС энд КОНДИШНС и открывается страница вместо установки галочки....

PayPage.agreeSelect().click(-25, 0);

с помощью парамтеров в клик я это обхожу.....

Но если экран мобильный или просто узкий то эта строка превращается в две строки и позицию определить куда кликать пока не удается.....
источник

EM

Eduard Meshchanchuk in Selenide на русском
Второй подход возможен.... этот лейбл для ИНТПУТ который имеент высоту 0 пикселей.... если средствами селенид возможно увеличить размер элемента соответственно можно попробовать по нему кликнуть.... такое возможно ? если да подскажите пожалуйста как ?
источник

AV

Alexei Vinogradov in Selenide на русском
Eduard Meshchanchuk
Всегда выбирается середина объекта.... соответственно середина это ссылка ТЕРМС энд КОНДИШНС и открывается страница вместо установки галочки....

PayPage.agreeSelect().click(-25, 0);

с помощью парамтеров в клик я это обхожу.....

Но если экран мобильный или просто узкий то эта строка превращается в две строки и позицию определить куда кликать пока не удается.....
а, бывает да. Вроде я видал какой-то PR про Shadow-DOM, но сейчас если честно не помню статус и содержание. @dstekanov ?

А так вобще через JavaScript можно достать.
источник

EM

Eduard Meshchanchuk in Selenide на русском
@alexejv огромное спасибо за наводку на джаваскрипт

executeJavaScript("document.querySelector('label[for=\"edit-payment-details-terms-and-conditions-wrapper-accept\"]').click();");

вот таким образом получилось кликнуть.... только не понятно как это работает.... если селенид кликает на середину элемента и может не ту ссылку кликнуть то через ЖС все отрабатывает корректно....
источник

AV

Alexei Vinogradov in Selenide на русском
Eduard Meshchanchuk
@alexejv огромное спасибо за наводку на джаваскрипт

executeJavaScript("document.querySelector('label[for=\"edit-payment-details-terms-and-conditions-wrapper-accept\"]').click();");

вот таким образом получилось кликнуть.... только не понятно как это работает.... если селенид кликает на середину элемента и может не ту ссылку кликнуть то через ЖС все отрабатывает корректно....
JS "кликает" без точки приложения, если я правильно понимаю- просто элементу посылает ивенты.
источник

EM

Eduard Meshchanchuk in Selenide на русском
спасибо огромное
источник

AV

Alexei Vinogradov in Selenide на русском
Кстати у селенида тоже есть  такая опция, вроде (clickViaJs)
источник

A

Anton in Selenide на русском
Да это опция в конфиге, а не метод, чтобы не действовало на все клики, надо включить, кликнуть и потом сразу выключить =)
источник

DS

Dmytro Stekanov in Selenide на русском
Alexei Vinogradov
а, бывает да. Вроде я видал какой-то PR про Shadow-DOM, но сейчас если честно не помню статус и содержание. @dstekanov ?

А так вобще через JavaScript можно достать.
в 5.8.0 добавили поддержку псевдо-элементов, но не уверен на счет клика..
источник

DS

Dmytro Stekanov in Selenide на русском
источник

V

Vel in Selenide на русском
https://ru.selenide.org/2020/03/18/selenide-5.10.0/
Добавили поддержку Shadow DOM
источник

AV

Alexei Vinogradov in Selenide на русском
А да, это скорее псевдо-элемент, не shadow dom
источник

DS

Dmytro Stekanov in Selenide на русском
да, :before это псевдо-элемент
источник

AS

Andrei Solntsev in Selenide на русском
Anton
Да это опция в конфиге, а не метод, чтобы не действовало на все клики, надо включить, кликнуть и потом сразу выключить =)
Почему бы не включить один раз Configuration.clickViaJs = true; - и пусть действует всегда?
Не вижу проблем. Простой и надёжный способ.
источник

SV

Stanislav Vasenkov in Selenide на русском
Подскажите, пожалуйста, забыл как делать

Как забрать логи консоли у remote браузера? У локального это работает
    public static String getConsoleLogs() {
       return String.join("\n", Selenide.getWebDriverLogs(BROWSER));
   }
источник

SV

Stanislav Vasenkov in Selenide на русском
Stanislav Vasenkov
Подскажите, пожалуйста, забыл как делать

Как забрать логи консоли у remote браузера? У локального это работает
    public static String getConsoleLogs() {
       return String.join("\n", Selenide.getWebDriverLogs(BROWSER));
   }
ага. блин. работает, но через раз, странная фигня
источник
2020 April 18

YK

Yasha Kramarenko in Selenide на русском
источник

YK

Yasha Kramarenko in Selenide на русском
@barancev нужна помощь 🙂 разобрать что где нужно решать) в вебдрайвере или в селенидах
источник