有人告訴我,水豚只有在頁面上可見時才會找到它。用ruby可以掃描所有頁面尋找這條記錄嗎?
我嘗試了以下解決方案:但是根據我朋友Thomas的幫助,只有在串列中可見該專案時才能找到Capybara,如果它在另一個分頁中,Capybara找不到它
@ger_material_active = 'automation_Server_ALUMINIO_ACTIVE' rand(1..99).to_s find("td", text: @ger_material_active).click
uj5u.com熱心網友回復:
是的,您可以使用回圈來處理所有分頁回應,直到找到您要查找的文本。要做到這一點,您必須知道在頁面上單擊什么以移動到下一頁結果,并且要么選擇指示結果頁面已完成加載的內容,要么為每個頁面設定足夠長的等待時間以加載
until page.has_css?("td", text: @ger_material_active, wait: 3) do
# You need to click whatever moves to the next page of results - I can't tell what that would be because you haven't provided any page structure/HTML
click_button('next result') # this is not correct, it's just an example - you need to click whatever moves to the next page of results
end
find("td", text: @ger_material_active).click
這是最簡單的方法,但也是最慢的,因為您需要將wait值設定得足夠大,以確保每次都加載下一組結果。檢測表明結果正在加載/加載的頁面更改會更有效,而不是等待元素出現幾秒鐘,但是告訴您如何做到這一點需要更多關于頁面的資訊和它是如何作業的(出現/消失的元素,狀態變化等)。這也有可能創建一個無限回圈,除非您確保您撰寫的用于單擊下一頁結果按鈕的代碼意識到它位于最后一頁并且不只是繼續嘗試單擊以獲取新頁面結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/485001.html
上一篇:使用單數或復數從哈希中獲取
