2014-01-13 61 views
0

我嘗試在沒有睡眠命令的情況下在剛剛打開的頁面上查找按鈕。使用Watir和Chrome瀏覽器在剛剛打開的網頁上查找元素

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 
+0

我怕你將不得不提供在我能夠幫助你之前獲得更多的信息。你得到的錯誤是什麼?您嘗試點擊的元素的HTML是什麼?什麼是定義該元素的實際Watir代碼?另外,上面所有的「def」行都是錯誤的Ruby,所以很難真正理解你的方法在你的代碼中實際做了什麼。 –

+0

@Abe Heward好吧,我會盡力給你更多的信息,我會修改我的問題。 –

+0

如果您使用的超時時間很長 - 例如2分鐘,它是否工作?我想知道Chrome是否太慢或者存在不同的問題。 –

回答

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

相關問題