2

私は次のコードを持っています:

element :header_upgrade_subscription, :xpath, "//a[text()='Upgrade subscription']"
element :header_change_subscription, :xpath, "//a[text()='Change subscription']"

if header_upgrade_subscription.visible?
  change_subscription = header_upgrade_subscription 
else
  change_subscription = header_change_subscription 
end

問題は、header_upgrade_subscription が存在しない場合、次のように失敗することです。

Capybara::ElementNotFound Exception: Unable to find xpath "//a[text()='Upgrade subscription']"

カピバラでは、次のことができることを知っています。

(rdb:1) first(:xpath, "//a[text()='Upgrade subscription']")
nil

存在しない場合は nil を返します。SitePrism 要素に対して「最初の」メソッドを使用するにはどうすればよいですか? これは私が得るものです:

(rdb:1) first(header_upgrade_subscription)
Capybara::ElementNotFound Exception: Unable to find xpath "//a[text()='Upgrade subscription']"

要素が存在しない場合は待機時間がないため、「最初の」メソッドを使用するのが好きです。

ご協力いただきありがとうございます!

4

2 に答える 2