Доступ к элементам из iFrame - сбой в watir-webdriver 0.6.6 - отлично работает в 0.6.4

Я пытаюсь выбрать значение в раскрывающемся списке, которое находится внутри iFrame. Фрейм вложен в таблицу. HTML:

<html class ="some text"> 
<head>...</head> <body id="htmlBody"> 
 <div class= "modalWindow ui-dialog-content ui-widget-content ModalWindow containsFrame" id="ui-id-2"> 
   <iframe src= "/MyApplicantPortal/Applicant/254471/SelectOrderTemplate?t=1"> 
   #document 
    <html class = "some text" 
     <head id= "Head1"> 
     <body id="htmlBody"> 
     <form method= "post" action="SelectOrderTemplate?t=1" id="form1"> 
      <div class = "ModalContent"> 
       <Table> 
        <td class="label1"> 
         <Select id= "MyselList" </td>

Мой код:

element(:select_frame, :frame, :src => MyApplicantPortal\/Applicant\/\d+\/SelectOrderTemplate\?t=1/)
select_list(:template) {select_frame_element.select_list_element(:id => 'MyselList')}

Ошибка: Watir::Exception::UnknownFrameException: unable to locate frame using {:src=>/MyApplicantPortal\/Applicant\/\d+\/SelectOrderTemplate\?t=1/, :tag_name=>"frame"}


person mkum    schedule 03.02.2014    source источник
comment
Вы уверены, что вставили правильный код? Код объекта страницы ищет SelectQuoteTemplate, однако в исключении говорится, что он пытается найти SelectOrderTemplate.   -  person Justin Ko    schedule 03.02.2014
comment
Извинения. Это опечатка. Я отредактировал html.   -  person mkum    schedule 03.02.2014
comment
Наконец-то я нашел основную причину неудачи. Watir-Webdriver вызывает сбой. Я вернулся к watir-webdriver 0.6.4, и все заработало нормально. Watir-webdriver 0.6.6 вызывает сбой. Не уверен, что изменилось между двумя версиями.   -  person mkum    schedule 04.02.2014
comment
Я только что выпустил новую версию драгоценного камня, которая исправляет эту проблему. Теперь вы будете использовать метод in_frame только для фреймов и метод in_iframe для фреймов.   -  person Cheezy    schedule 05.02.2014
comment
Спасибо, Чизи. Я проверю и дам вам знать.   -  person mkum    schedule 07.02.2014
comment
@Cheezy Новая версия драгоценного камня устранила проблему. Спасибо за это обновление.   -  person mkum    schedule 07.02.2014


Ответы (2)


Watir-webdriver 0.6.5 изменил способ поиска фреймов.

  • До (т.е. до 0.6.5) browser.frame размещал frame и iframe элементы.
  • Теперь browser.frame находит frame элементов, а browser.iframe находит iframe элементов.

Вам нужно будет изменить свой аксессор фрейма, чтобы он соответствовал новым правилам (при переходе на 0.6.5 или более позднюю версию). Второй параметр нужно изменить с :frame на :iframe:

element(:select_frame, :iframe, :src => /MyApplicantPortal\/Applicant\/\d+\/SelectOrderTemplate\?t=1/)
person Justin Ko    schedule 03.02.2014

Я сейчас выпускаю новую версию гем-объекта страницы, которая решает эту проблему. Должен выйти через день-два.

person Cheezy    schedule 04.02.2014