紧跟在h3之后的文本框的CSS选择器路径,带有文本“公司名称”

下面是我的HTML

Company Name

Full Company Legal Name

Company Phone

Federal Tax / Employer ID (EIN)

由于所有文本字段和各个父div 属性的类值相同,我需要填充这些文本字段而不使用nth-of-type。

我已经完成了创建一个CSS选择器的工作,该选择器应该指向

Full Company Legal Name

之后的文本框。

h3:包含(^公司名称$)+ div>输入

但我的Capybara脚本没有认识到上述方法并抛出以下错误。

annotateInvalidSelectorError_’:给定的选择器h3:包含(^ Company Name $)+ div> input无效或不导致WebElement。 发生以下错误:(Selenium :: WebDriver :: Error :: InvalidSelectorError)InvalidSelectorError:指定了无效或非法的选择器

任何人都可以提供符合我要求的CSS吗?

此致,Avinash Duggirala

不推荐使用contains伪类,这就是InvalidSelectorError发生的原因。 目前无法使用CSS选择器检查文本节点。

相反,您可以使用XPath遍历DOM到兄弟元素。

 text_field = page.find(:xpath, '//h3[text() = "Company Name"]/following-sibling::div[1]/input') text_field.set('some value')