Здравствуйте, пытаюсь понять и устранить причину падения теста в iframe
Есть форма
Для которой я написал работающий тест на заполнение.
public class Calculator {
@Test
public void userCanSendCalculatorForm() {
//WebDriverManager.chromedriver().version("83").setup();
//Open Calculator Form
open("https://api.carvago.com/marketing/sauto/calculator?customId=23545652&priceFormat=249900&click=https://i.imedia.cz/clickthru?spotId=2740202§ion=/osobni/klient&collocation=9742%20key6&passon.customId=23545652&passon.priceFormat=249900&passon.id=18688547&r=tV2LN%2Bwe24Uj9MWOeaP9snJ6y14-6-1&destination");
//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"));
}
}
тест рабочий на 100%
Далее я хочу провести этот тест на странице, где находится эта форма.
Например https://www.sauto.cz/osobni/detail/ford/mondeo/18592795?company=1&goFrom=list (под фотками машины форма с процентами)
Она расположена в двух айфреймах.
Поэтому я написал такое решение
public class Spage {
@Test
public void userCanSendAllForm() {
//Open Carvago list
open("https://www.sauto.cz/detail-prodejce/carvago/9742");
//Choose auto
switchTo().frame($("[id='iframe']"));
$x("(//img[@class='mainPhoto loaded_img'])[1]").click();
//Calculator Form
switchTo().frame($("#adFrameSmall iframe"));
switchTo().frame($("#banner2796250 iframe"));
//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"));
//unfocus iframe
switchTo().defaultContent();
И тут начинается мистика, у меня выполняются все шаги кроме трех последних
То есть - почему то НЕ активируется чекбокс и не нажимается кнопка.
И проблема именно в том тесте, где я работаю с айфреймами, без айфреймов - все окей
Пожалуйста подскажите в чем может быть проблема