gpt4 book ai didi

capybara - 单击元素(如果它存在于 capybara 中)

转载 作者:行者123 更新时间:2023-12-03 03:19:16 27 4
gpt4 key购买 nike

我希望单击我的测试应用程序上出现的弹出消息(如果存在)。我对 capybara 很陌生,似乎找不到办法做到这一点。我以前有过使用 watir 的经验,如果我使用 watir 的话,会是这样的:

if browser.link(:text, "name").exists? do
browser.link(:text, "name").click
end

我怎样才能在 capybara 中做同样的事情?请注意,此链接并不总是出现,因此我希望有 if 语句。

最佳答案

直接的头部代码就是调用 has_link?匹配器然后 click_link行动:

if page.has_link?('name')
page.click_link('name')
end

但这并不是最快的解决方案,因为 capybara 会向驱动程序发出两次查询来获取元素:第一个查询在 has_link? 中,第二个查询在 click_link 中。

更好的变体可能是仅进行一次查询来获取元素:

# This code doesn't check that an element exists only at one place and just chooses the first one
link = first('name')
link.click if link

# This code checks that element exists only at one place
links = all('name')
unless links.empty?
links.count.should == 1
link = links.first
link.click
end

我个人会选择 has_link?/click_link 实现,因为第二个变体不会检查元素仅存在于一个位置,而第三个变体太长。

关于capybara - 单击元素(如果它存在于 capybara 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16948143/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com