Selenium 2 - Не открывается окно после нажатия на кнопку
#1
Отправлено 16 ноября 2011 - 17:54
Я пишу тест для Facebook application. Он находится в iframe. Я переключаюсь в этот iframe и все работает хорошо до тех пор, пока я не жму на кнопку, после нажатия на которую должно появиться окошко c полями ввода email и message (смотрите скриншот). Но когда я запускаю программу, то она выдает ошибку "Element is not currently visible and so may not be interacted with; duration or timeout: 6.07 seconds".
Я думаю, что это из-за того, что окошко при проигрывании скрипта не появляется. Но я не понимаю почему. Вот код:
WebElement myelementEmailButton = mydriver.findElement(By.id("mail-fapp"));
myelementEmailButton.click();
WebElement myelementEmailForSharing = mydriver.findElement(By.id("email"));
myelementEmailForSharing.sendKeys("Логин");
WebElement myelementEmailSharingText = mydriver.findElement(By.id("message"));
myelementEmailSharingText.sendKeys("Сообщение");
myelementEmailSharingText.submit();
И кнопка и окошко находятся в одном iframe, следовательно оно должно находить поле для ввода имейла.
Как то так... Буду очень благодарна за помощь. Старалась описать детально. Если что не понятно - уточняйте. Спасибо! :)
#2
Отправлено 17 ноября 2011 - 07:21
У меня возникла следующая проблема с Selenium.
Я пишу тест для Facebook application. Он находится в iframe. Я переключаюсь в этот iframe и все работает хорошо до тех пор, пока я не жму на кнопку, после нажатия на которую должно появиться окошко c полями ввода email и message (смотрите скриншот). Но когда я запускаю программу, то она выдает ошибку "Element is not currently visible and so may not be interacted with; duration or timeout: 6.07 seconds".
Я думаю, что это из-за того, что окошко при проигрывании скрипта не появляется. Но я не понимаю почему. Вот код:
WebElement myelementEmailButton = mydriver.findElement(By.id("mail-fapp"));
myelementEmailButton.click();
WebElement myelementEmailForSharing = mydriver.findElement(By.id("email"));
myelementEmailForSharing.sendKeys("Логин");
WebElement myelementEmailSharingText = mydriver.findElement(By.id("message"));
myelementEmailSharingText.sendKeys("Сообщение");
myelementEmailSharingText.submit();
И кнопка и окошко находятся в одном iframe, следовательно оно должно находить поле для ввода имейла.
Как то так... Буду очень благодарна за помощь. Старалась описать детально. Если что не понятно - уточняйте. Спасибо! :)
Element not visible значит, что элемент есть, но он вне зоны видимости. Следовательно, либо окошко все же открывается (что маловероятно), либо ошибка проявляется не после нажатия на кнопку, а в момент. Т.е., ошибка говорит, что кнопку, на которую надо нажать, not visible и поэтому selenium не может ее нажать. Для того, чтобы сделать элемент visible надо проскролить страницу.
Обычно помогает вот такой вариант:
WebElement myelementEmailButton = mydriver.findElement(By.id("mail-fapp"));
((RemoteWebDriver)mydriver).executeScript("arguments[0].scrollIntoView()", myelementEmailButton );
myelementEmailButton.click();
#3
Отправлено 21 ноября 2011 - 16:50
Помогло :)
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных