Size: a a a

Selenide на русском

2020 June 25

EE

Escudo Escobar in Selenide на русском
и один из вариантов

switchTo().frame($("#adSkyscraper .iframe"));
источник

АК

Александр Кот... in Selenide на русском
Escudo Escobar
и один из вариантов

switchTo().frame($("#adSkyscraper .iframe"));
Интересный вариант. Посмотрите, сработает ли такой подход для второго iframe в DOM-дереве?
источник

EE

Escudo Escobar in Selenide на русском
вариант как раз не работает.
гуглил подобную вещь, пытался под свою ситуацию переделать
источник

EE

Escudo Escobar in Selenide на русском
в итоге пришлось через xpath
switchTo().frame($x("(//*[@id='adSkyscraper']//iframe)"));
источник

AA

Andrew Antoniuk in Selenide на русском
Escudo Escobar
и один из вариантов

switchTo().frame($("#adSkyscraper .iframe"));
Вместо . пробел перед iframe
источник

EE

Escudo Escobar in Selenide на русском
спасибо, попробую.
еще один вопрос, попробую сформулировать
на странице 3 iframe
сначала я "переключаю фокус" на один ifreme коммандой
switchTo().frame($x("(//*[@id='adSkyscraper']//iframe)"));
потом проделываю в нем какие-то операции, и мне надо "переключить фокус" обратно на страницу. Какой коммандой это сделать ?
источник

A

Artem in Selenide на русском
Escudo Escobar
спасибо, попробую.
еще один вопрос, попробую сформулировать
на странице 3 iframe
сначала я "переключаю фокус" на один ifreme коммандой
switchTo().frame($x("(//*[@id='adSkyscraper']//iframe)"));
потом проделываю в нем какие-то операции, и мне надо "переключить фокус" обратно на страницу. Какой коммандой это сделать ?
switchTo().defaultContent()
источник

EE

Escudo Escobar in Selenide на русском
Артем, спасибо
Andrew, указанный Вами способ помог, спасибо
источник

АК

Александр Кот... in Selenide на русском
Escudo Escobar
и один из вариантов

switchTo().frame($("#adSkyscraper .iframe"));
а с чего внезапно точка .frame? iframe это же не класс, а тэг. Без точки должно сработать
источник

EE

Escudo Escobar in Selenide на русском
не могу понять
настроил заполнение формы

//Fill the name
$("[id='calculation-form_name']").setValue("a");
//Fill the Email
$("[id='calculation-form_email']").setValue("b");

//Set checkbox true
$("[id='calculation-form_agreement']").setSelected(true);

//Click button
$("[id='calculation-form_submit']").click();

//Confirmation control
$("[id='calculation-form']").shouldHave(Condition.text("Děkujeme za Váš zájem"));

Заполнение имени, имэйла, потом делает чекбокс активным и нажимает кнопку отослать

Если эта форма открыта в отдельном табе - все окей, тест проходит, формы заполняются, чекбокс нажимается и кнопка тоже
источник

EE

Escudo Escobar in Selenide на русском
но когда эта форма находится в айфреймах (точнее двух), то срабатывает только заполнение форм, и падает на последнем шаге, чекбокс не отмечается, кнопка не нажимается
тоесть
$("[id='calculation-form_agreement']").setSelected(true);

$("[id='calculation-form_submit']").click();

не срабатывают. может ли это быть связано как-то  с фреймами ?
источник

AZ

Andrii Zinchuk in Selenide на русском
да
источник

EE

Escudo Escobar in Selenide на русском
опытным путем понял, что selenide "думает", что отметил checkbox и нажал кнопку, но на деле, в браузере, чекбокс не отмечен и нажатия не произошло
источник

AA

Andrew Antoniuk in Selenide на русском
Значит где то на сайте может быть чекбокс с таким же локатором
источник

EE

Escudo Escobar in Selenide на русском
сейчас проверю, но, как я понимаю мы же переключились на определенный айфрейм, а в этом айфрейме только эта форма

но Вашу мысль сейчас проверю
источник

EE

Escudo Escobar in Selenide на русском
нет, уникальные элементы
источник

EE

Escudo Escobar in Selenide на русском
Вот под фотками машины сразу форма
https://www.sauto.cz/osobni/detail/ford/mondeo/18592795?company=1&goFrom=list
источник

EE

Escudo Escobar in Selenide на русском
И вот мой код

//Click Akontace
       $("[id='calculation-form_advance']").click();
       
//Choose 20%  
       $("[id='calculation-form_advance']").selectOption(2);

       
//Click Month
       $("[id='calculation-form_months']").click();
       
//Choose 2 month  
       $("[id='calculation-form_months']").selectOption(2);

       
//Fill the name
       $("[id='calculation-form_name']").setValue(RandomString.getStringByFormat(10, RandomString.LETTERS_AND_NUMBERS));
       
//Fill the Email
       $("[id='calculation-form_email']").setValue(RandomString.getStringByFormat(10, RandomString.LETTERS_AND_NUMBERS) + "@automation.test");


       
//Set checkbox true  (не отмечается чекбокс)
       $("[id='calculation-form_agreement']").setSelected(true);

       
//Click button (кнопка не нажимается)
       $("[id='calculation-form_submit']").click();

       
//Confirmation text control (и на этом шаге падает)
       $("[id='calculation-form']").shouldHave(Condition.text("Děkujeme za Váš zájem"));
источник

ЖМ

Жека Марков... in Selenide на русском
Всем привет, есть трабла с которой не могу разобраться: у меня есть текстовое поле (iframe) в которое нужно вставить 2к символов, вставляю текст из буфера, все работает, но когда запускаю тест в хедлесс режиме - текст не всталяется. Потом пробовал включить Configuration.fastSetValue = true; везде работает, а в frame отказывается что-либо вводить. Обычным setValue вводит, нооо оооочень долго. Может кто подтолкнет на умную мысль?
источник

EE

Escudo Escobar in Selenide на русском
Не я один с frame сладить не могу )
источник