Size: a a a

Selenide на русском

2020 August 12

АГ

Алексей Герасимов... in Selenide на русском
Зависимость правильная?

       <dependency>
           <groupId>com.browserup</groupId>
           <artifactId>browserup-proxy-core</artifactId>
           <version>2.1.1</version>
           <scope>test</scope>
       </dependency>
источник

AS

Andrei Solntsev in Selenide на русском
Вроде да
источник

АГ

Алексей Герасимов... in Selenide на русском
Не хочет работать. Может, есть рабочий пример?
источник

M

Max in Selenide на русском
Помогите плиз разобратся. Делаю визуализацию кликов по этому примеру https://github.com/selenide-examples/gmail/blob/master/test/org/selenide/examples/gmail/Highlighter.java (ну только код в котлин импортировал)

В @BeforeEach добавил WebDriverRunner.addListener(Highlighter())

В итоге элементы выделяются, всё нормально, но после того как пробежал по всем элементам, тест валится с исключением
class org.openqa.selenium.support.events.EventFiringWebDriver cannot be cast to class org.openqa.selenium.remote.RemoteWebDriver (org.openqa.selenium.support.events.EventFiringWebDriver and org.openqa.selenium.remote.RemoteWebDriver are in unnamed module of loader 'app')
java.lang.ClassCastException: class org.openqa.selenium.support.events.EventFiringWebDriver cannot be cast to class org.openqa.selenium.remote.RemoteWebDriver (org.openqa.selenium.support.events.EventFiringWebDriver and org.openqa.selenium.remote.RemoteWebDriver are in unnamed module of loader 'app')


При этом не важно локально запускаю или на удаленом браузере. Я в тупике, может кто встречался с таким?

update: Падает на строке val sessionId = (getWebDriver() as RemoteWebDriver).sessionId.toString() , без нее тест завершается нормально, но мне нужно получить session id.
источник

AS

Andrei Solntsev in Selenide на русском
Кинь полный стектрейс в гисте
источник

M

Max in Selenide на русском
Andrei Solntsev
Кинь полный стектрейс в гисте
источник

AS

Andrei Solntsev in Selenide на русском
Ну так проблема в твоём классе


at tests.Hooks.afterScenario(Hooks.kt:42)
источник

M

Max in Selenide на русском
Добавил в комментарии на гисте этот класс https://gist.github.com/Catchermax/8e8137fcbb0dd9b211e8dc1b064f9005 , сама проблема в этом моменте
getWebDriver() as RemoteWebDriver
я не понимаю почему преобразование не работает если в BeforeEach я добавляю
WebDriverRunner.addListener(Highlighter())
источник

D

Dmitry in Selenide на русском
Andrei селенидовский элемент ищется же при каждом обращении к нему?
источник

AS

Andrei Solntsev in Selenide на русском
Dmitry
Andrei селенидовский элемент ищется же при каждом обращении к нему?
Да, при каждом.
источник

D

Dmitry in Selenide на русском
а как тогда лучше обыграть следующую ситуацию?
element.$(removeBtn).click();
       element.waitUntil(not(visible), 5000);
если на странице есть ещё другие элементы с аналогичными селекторами
источник

AS

Andrei Solntsev in Selenide на русском
Max
Добавил в комментарии на гисте этот класс https://gist.github.com/Catchermax/8e8137fcbb0dd9b211e8dc1b064f9005 , сама проблема в этом моменте
getWebDriver() as RemoteWebDriver
я не понимаю почему преобразование не работает если в BeforeEach я добавляю
WebDriverRunner.addListener(Highlighter())
Ну так загляни в исходник. Элементарно же.

Метод addListener оборачивает драйвер в EventЧегототамDriver
источник

AS

Andrei Solntsev in Selenide на русском
Dmitry
а как тогда лучше обыграть следующую ситуацию?
element.$(removeBtn).click();
       element.waitUntil(not(visible), 5000);
если на странице есть ещё другие элементы с аналогичными селекторами
Надо найти уникальный селектор, как же ещё.
источник

AS

Andrei Solntsev in Selenide на русском
Ну или можно найти всю коллекцию и подождать, пока её размер уменьшится.
источник

D

Dmitry in Selenide на русском
угу, спасибо
источник

M

Max in Selenide на русском
Andrei Solntsev
Ну так загляни в исходник. Элементарно же.

Метод addListener оборачивает драйвер в EventЧегототамDriver
Ды я видел что оборачивает, я не понимаю как сделать чтобы я мог этот eventчегототам в remoteWebDriver перевести
источник

AL

Anson Liao in Selenide на русском
Boris Osipov
I mean is beforeMethod() only place when you change timeout? Could you double check it? Also still need stacktrace..
Hi Boris, please refer my repo: https://github.com/ansonliao/Selenium-RottenTomatoes

The test script is very simple, also I open an issue about this: https://github.com/ansonliao/Selenium-RottenTomatoes/issues/1

thanks for help on my case
источник
2020 August 13

A

Anton in Selenide на русском
try to move Configuration in driverProvider to before.. in test class
источник

A

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

AL

Anson Liao in Selenide на русском
Anton
try to move Configuration in driverProvider to before.. in test class
Andrei Solntsev provided the solution and currently the problem are solved: https://github.com/ansonliao/Selenium-RottenTomatoes/issues/1
источник