2017-01-06 4 views
1

Я искал и взломал, обыскал и взломал, но еще не придумал решение. Я пытаюсь найти элемент в таблице и нажать ссылку «Удалить», которая находится в одной из ячеек справа. Мой код страницы-объекта для поиска и выбора соответствующей ссылки работает как чемпион, однако, когда появляется всплывающее окно подтверждения, кнопка «ОК» никогда не нажимается, чтобы элемент не удалялся. Мой объект страницы ниже. Я добавил «sleep 5», чтобы убедиться, что я вижу всплывающее окно, и это происходит. Должен ли я вообще не видеть всплывающее окно?страница-объект не работает

class ThingManagementPage 
     include PageObject 

     page_url "https://#{HOST_MAP['portal']}/customers/<%= params[:customer] %>/customer_things" 
     link(:things_and_prefixes, :text => 'ASNs & Prefixes') 
     link(:thing_sets, :text => 'AS Sets') 
     table(:things, :css => '.table-condensed') 
     links(:delete_thing, :title => 'Delete') 
     links(:edit_thing, :title => 'Edit') 

     def delete_thing(thing) 
     found = false 
     index = 0 
     self.things_element.each do |row| 
      if row[0].text == thing 
      self.confirm(true) do 
       self.delete_thing_elements[index-1].click 
       sleep 5 
      end 
      found = true 
      break 
      end 
      index += 1 
     end 
     fail "Failed to find and delete thing #{thing} on page!" unless found 
     end 
    end 

ответ

0

Я решил это, однако это похоже на хак и что-то, что не нужно при использовании page-object. По сути, я заменил это:

 self.confirm(true) do 
      self.delete_thing_elements[index-1].click 
      sleep 5 
     end 

с призывами к селеном WebDriver для переключения в всплывающем окне и нажмите кнопку OK:

self.delete_thing_elements[index-1].click 
    @browser.switch_to.window("") 
    @browser.find_element(:xpath => '//div[2]/button[2]').click