Size: a a a

Selenide на русском

2019 November 22

M

Max in Selenide на русском
Не отрицаю что способ есть, просто я не придумал
источник

YO

Yaroslav Osmyslitelny in Selenide на русском
У меня драйвер1 в потоке 1. Драйвер2 в потоке2. Selenide опен не обращается к потоковым. (Как раньше). Он обращается к одному, после фикса. Selenide.open не использовать в моем кейсе?
Ссылку-объяснение увидел, понял так: "не то чтоб баг, решается нормальным написанием тестов". Зачем тогда менять надо было?
источник

AS

Andrei Solntsev in Selenide на русском
Max
Ну по другому я не знаю как там вырулить
Тут не хитрый способ нужен, а всю систему менять. См. https://www.youtube.com/watch?v=ePvrXUCeAr8
источник

AS

Andrei Solntsev in Selenide на русском
Yaroslav Osmyslitelny
У меня драйвер1 в потоке 1. Драйвер2 в потоке2. Selenide опен не обращается к потоковым. (Как раньше). Он обращается к одному, после фикса. Selenide.open не использовать в моем кейсе?
Ссылку-объяснение увидел, понял так: "не то чтоб баг, решается нормальным написанием тестов". Зачем тогда менять надо было?
Не, ты что-то не то говоришь. Selenide.open по-прежнему берёт WebDriver из threadlocal. open в потоке 1 использует драйвер 1, а в потоке 2 использует драйвер 2.
источник

YO

Yaroslav Osmyslitelny in Selenide на русском
Andrei Solntsev
Не, ты что-то не то говоришь. Selenide.open по-прежнему берёт WebDriver из threadlocal. open в потоке 1 использует драйвер 1, а в потоке 2 использует драйвер 2.
Selenide.open-> getSelenideDreiver.open

GetSelenideDriver -> staticSelenideDriver

Что упускаю из вида?
источник

AS

Andrei Solntsev in Selenide на русском
А дальше? staticSelenideDriver -> получает вебдрайвер из threadlocal.
источник

YO

Yaroslav Osmyslitelny in Selenide на русском
Andrei Solntsev
А дальше? staticSelenideDriver -> получает вебдрайвер из threadlocal.
А где там? Там new ThreadLocalSelenideDriver. А он просто объект, не вижу никакого намека на потоки, одни статики и имплементация базового селениддрайвера
источник

M

Max in Selenide на русском
Немного не про то. Тут вот в чем дело. Есть система к которой я не имею доступ и это прод, на нем мне надо запилить несколько автотестов. На проде плодить аккаунты с рандомнымы емайлами не круто, поэтому юзаю один акк. Собственно после некоторых манипуляций мне нужно привести аккаунт к первоначальному состоянию. А конкретно удалять то что было создано во время теста (в частности у меня создаются карточки с данными внутри аккаунта)

И тут я вижу два варианта:
1. Это дергать апи и удалять эти карточки. Но для этого нужно получить токен который состоит из двух частей (авторизация проходит вообще через другой сайт, это первая часть токена и откуда берется вторая я откопать не смог), поэтому этот способ я отмел.

2. Это заходить в аккаунт и удалять эти карточки через ui, но тут при открытие страницы они появляются не сразу и их может быть любое количество. Поэтому я проверяю что когда появилась хотя бы одна карточка, то создаю лист со всеми картами (они появляются одновременно) и удаляю их.

Вот, если вкратце как то так. Собственно тут наверно не требуется какое то решение, так как действительно к реальным тестам это мало отношения имеет. Тут скорее "какой бы велосипед придумать быстро"
источник

AS

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

AS

Andrei Solntsev in Selenide на русском
Yaroslav Osmyslitelny
А где там? Там new ThreadLocalSelenideDriver. А он просто объект, не вижу никакого намека на потоки, одни статики и имплементация базового селениддрайвера
Не понимаю, чего ты от меня хочешь? Ну глянь в исходник. ThreadLocalSelenideDriver вызывает StaticDriver, а он в свою очередь WebDriverRunner.getWebDriver().
источник

AS

Andrei Solntsev in Selenide на русском
(не спорю, сложновато вышло. Хочется упростить. Надеюсь, удастся порефакторить как-нибудь в следующих релизах.)
источник

YO

Yaroslav Osmyslitelny in Selenide на русском
Andrei Solntsev
Не понимаю, чего ты от меня хочешь? Ну глянь в исходник. ThreadLocalSelenideDriver вызывает StaticDriver, а он в свою очередь WebDriverRunner.getWebDriver().
Спрашивал где там что нибудь о потоках, ибо в упор не видел. Тут вроде ответ и есть. Потом посмотрю, спасибо.
источник

LY

Lev Yarushin in Selenide на русском
Max
Немного не про то. Тут вот в чем дело. Есть система к которой я не имею доступ и это прод, на нем мне надо запилить несколько автотестов. На проде плодить аккаунты с рандомнымы емайлами не круто, поэтому юзаю один акк. Собственно после некоторых манипуляций мне нужно привести аккаунт к первоначальному состоянию. А конкретно удалять то что было создано во время теста (в частности у меня создаются карточки с данными внутри аккаунта)

И тут я вижу два варианта:
1. Это дергать апи и удалять эти карточки. Но для этого нужно получить токен который состоит из двух частей (авторизация проходит вообще через другой сайт, это первая часть токена и откуда берется вторая я откопать не смог), поэтому этот способ я отмел.

2. Это заходить в аккаунт и удалять эти карточки через ui, но тут при открытие страницы они появляются не сразу и их может быть любое количество. Поэтому я проверяю что когда появилась хотя бы одна карточка, то создаю лист со всеми картами (они появляются одновременно) и удаляю их.

Вот, если вкратце как то так. Собственно тут наверно не требуется какое то решение, так как действительно к реальным тестам это мало отношения имеет. Тут скорее "какой бы велосипед придумать быстро"
А авторизоваться в ui и поудалять не получится?
источник

M

Max in Selenide на русском
Lev Yarushin
А авторизоваться в ui и поудалять не получится?
так по такому сценарию щас и делаю
источник

LY

Lev Yarushin in Selenide на русском
Поудалять через api
источник

M

Max in Selenide на русском
Lev Yarushin
Поудалять через api
А, это можно, но поскольку я токен могу взять только для текущего юзера (а не генерить по логину-паролю сразу) то при смене на другого пользователя если понадобиться, придется заново вручную доставать токен и вписывать в тесты, что вообще почти бессмысленно получается
источник
2019 November 23

M

Max in Selenide на русском
Подскажите плиз, как можно в поле быстро вставить больше число символов? Конкретно мне надо вставить/вписать в поле 190 тысяч символов, через метод sendKeys символы вписываются по очереди как при обычном вводе теста (ну это ожидаемо), но как я думал метод append именно вставляет символы и вызывает событие изменить, но вижу что он вписывает символы как и sendKeys. С setValue, аналогичное поведение. Какие ещё есть варианты как можно быстро в поле добавить такое большое количество символов?
источник

AB

Alexei Barantsev in Selenide на русском
190 тысяч? вы уверены, что используете Selenium (ну или Selenide) по назначению? :)
источник

M

Max in Selenide на русском
Не уверен) но вариантов нет. Условие такое что есть тестовое задание которое надо реализовать на селениуме (ну и селенайд), и нужно проверить что максимальное количество символов которое можно вписать в поле 190 тысяч (да, вот так вот))) ) ну и собстенно пытаюсь решить это.
источник

M

Max in Selenide на русском
хотя хотя конечно такие вещи надо проверять через апи, но тут нужно именно на ui протыкать
источник