页面对象确认无法正常工作

时间:2017-01-06 16:27:00

标签: page-object-gem

我已经搜索过,黑客攻击,搜查和黑客攻击,但尚未提出解决方案。我试图在表格中找到一个项目,然后单击右侧其中一个单元格中的删除链接。我的页面对象代码找到并单击相应的链接就像一个冠军,但是,当确认弹出窗口出现时,从不单击确定按钮,因此不会删除该项目。我的页面对象如下。我添加了"睡眠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

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,然而,这似乎更像是一种黑客攻击,而且在使用页面对象时不应该是必需的。基本上,我替换了这个:

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

调用selenium-webdriver切换到弹出窗口并单击OK按钮:

{{1}}