Перейти к содержимому

Фотография

Selenium 2 - Не открывается окно после нажатия на кнопку


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 ledi_A

ledi_A

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Антонина
  • Город:Киев

Отправлено 16 ноября 2011 - 17:54

У меня возникла следующая проблема с 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, следовательно оно должно находить поле для ввода имейла.
Как то так... Буду очень благодарна за помощь. Старалась описать детально. Если что не понятно - уточняйте. Спасибо! :)
  • 0

#2 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 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();
  • 1

#3 ledi_A

ledi_A

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Антонина
  • Город:Киев

Отправлено 21 ноября 2011 - 16:50

Большое Вам спасибо! :clapping:
Помогло :)
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных