0
我剛剛開始使用SitePrism,並且我有一個網站,其中的元素被動態添加到頁面中,並且沒有任何種類的ID,名稱等等......我能想到的最簡單的方法是通過它們找到它們'文本',例如。繼續按鈕是否可以用SitePrism點擊第N個元素?
我嘗試:
element :continue_b, :button, 'Continue'
和SitePrism失敗與以下:
Capybara::Ambiguous: Ambiguous match, found 4 elements matching button "Continue"
有沒有辦法對我來說,指定與SitePrism我想點擊的元素?我發現有幾種方法可以與水豚本身一起使用,但我沒有設法查看SitePrism的等價物。
我只是想和得到了錯誤: 「硒:: webdriver的::錯誤:: ElementNotVisibleError:元素不可見'。雖然元素是可見的! 看來,4個元素中的3個被報告爲不明確的是隱藏的(第一個是其中之一)。我本來期望SitePrism/Capybara嘗試點擊唯一可見的元素,但似乎並非如此。有沒有一種命令或方法來指定只關心可見元素?我試過了: 'element:continue_b,:button,'Continue',visible::true'但這並不奏效。 – mickael
奇怪的是,我得到默認的模糊消息,然後如果我使用'\t Capybara.ignore_hidden_elements = true'我得到這個呢?!水豚:: ElementNotFound:無法找到按鈕「繼續」 – mickael
@mickael首先,使用Capybara.ignore_hidden_elements = false通常是一個壞主意,當測試一個應用程序。其次,當你調用'continue_b'時,它聽起來像所有的按鈕都被隱藏了。 SitePrism禁用Capybaras自動等待行爲,所以它不會等待元素變爲可見。您可以重新配置SitePrism以啓用Capybaras隱式等待 - https://github.com/natritmeyer/site_prism#siteprism-configuration - 或者您需要調用「wait_until_button_b_visible」 - https://github.com/natritmeyer/site_prism#waiting要成爲可見的 –