使用Watir与Chrome浏览器在刚打开的网页上查找元素

时间:2014-01-13 15:05:16

标签: watir-webdriver

我尝试在没有睡眠命令的情况下在刚打开的页面上找到按钮。

HTML:

 <span id="create-user-button" class="ui-button ui-widget ui-state-default
 ui-corner-all ui-button-text-only" role="button" aria-disabled="false">
 <span class="ui-button-text">Create‌·User</span>
 </span>

我元素的初始化:

  span(:create_user_button, :id => "create-user-button") 

  def open_user_creation_dialog
  sleep 1
  self.create_user_button_element.when_visible.click
          end

当我在Chrome浏览器中使用一段没有睡眠的代码时,我的页面已关闭,我找不到已定义的按钮。 FF没有这样的问题。 我尝试使用很多变体来修复它,例如:

  self.create_user_button_element.when_visible(2).click

  self.create_user_button_element.when_present(2).click 

找到了解决方案:

我的页面不使用Ajax,但是我的页面上有很大的用户表,下载需要很长时间。 所以我在等待下载大表,之后我发现我的元素非常好。 我的问题解决了。

   div(:total_users_number, :id => "users-table_info")
   def open_user_creation_dialog 
   self.wait_until(10, "No users displayed") do 
   self.total_users_number_element.when_visible.text != ""
   end 
   self.create_user_button_element.when_visible.click 
   end

1 个答案:

答案 0 :(得分:0)

我有一个非常有用的内容页面,即用户列表,所以我应该等待具有大内容的元素。我这样做,这样:

       div(:total_users_number, :id => "users-table_info")
       self.wait_until(10, "No users displayed") do
       self.total_users_number_element.when_visible.text != ""
       end 

当这个元素加载时,我可以找到我所寻找的元素
           self.create_user_button_element.when_visible.click