我正在尝试在过渡期间为正在开发的应用编写一些通用的东西。标题元素在h2和h3之间不断变化,并导致不必要的失败。我想要一些更具体的东西(页面).to have_text ...
我想要做的是在Capybara中编写一个find命令,它会在代码中为数字放置一个正则表达式。像这样:
def locate_headers(arg)
header = find(/h(\d+)/, text: arg)
end
我希望这会在屏幕上找到与文本匹配的H元素。
我收到以下错误:
Selenium::WebDriver::Error::InvalidSelectorError: invalid selector: An invalid or illegal selector was specified
我对Regex没有太多经验。我想做什么,可能吗?
由于
答案 0 :(得分:3)
CSS选择器不支持正则表达式匹配,但它们支持与CSS逗号的OR匹配。这意味着你可以得到你想要的东西
def locate_header(arg)
header = find('h2, h3', text: arg)
end
会找到包含给定文字的<h2>
或<h3>
元素
答案 1 :(得分:0)
find
将 CSS选择器作为参数,而不是RegEx。因此,“非法选择者”。
考虑到这一点,:header
选择器仅选择标题。但是,我不确定它是否与Capaybara link