你声称
page.has_css?
是非等待函数不正确。
页has\u css?
将等待至
Capybara.default_max_wait_time
元素出现在页面上并返回的秒数
true
或
false
基于该元素是否在该时间内位于页面上。因此,给定
Capybara.default_max_wait_time = 5
if page.has_css?("div#my_div")
puts "on page"
else
puts "not on page"
end
default_max_wait_time
通过传递
:wait
选项
if page.has_css?("div#my_div", wait: 10) # will wait up to 10 seconds
...
如果不需要布尔响应,而是希望确保元素存在,则可以执行以下任何操作:
page.assert_selector(:css, 'div#my_div') # :css is the default so can usually be omitted
page.assert_css('div#my_div') # minitest
expect(page).to have_css('div#my_div') # RSpec
如果元素未出现
如果需要实际元素,可以使用
find
el = page.find(:css, 'div#my_div') # :css is the default and can usually be omitted
将等待元素出现,并在找到元素时返回该元素。如果在中未找到元素
默认最大等待时间
秒,它将引发异常。
注意:基本上,唯一的非等待方法是
all
和
first
:count
,
:minimum
,
:maximum
,
:between
click_link
click_button
find(...).click
等