Ruby on rails Capybara/Poltergeist:CSS属性选择器引发语法错误
我将Capybara 2.3与Poltergeist(在Rails上)一起使用,在使用包含属性值的CSS选择器调用“has_选择器”时遇到了一个问题。 例如:Ruby on rails Capybara/Poltergeist:CSS属性选择器引发语法错误,ruby-on-rails,ruby,css-selectors,capybara,poltergeist,Ruby On Rails,Ruby,Css Selectors,Capybara,Poltergeist,我将Capybara 2.3与Poltergeist(在Rails上)一起使用,在使用包含属性值的CSS选择器调用“has_选择器”时遇到了一个问题。 例如: page.has_selector? "select#select_id option[value!='1']" 导致以下错误: Capybara::Poltergeist::InvalidSelector: The browser raised a syntax error while trying to evaluate css s
page.has_selector? "select#select_id option[value!='1']"
导致以下错误:
Capybara::Poltergeist::InvalidSelector: The browser raised a syntax error while trying to evaluate css selector "select#select_id option[value!='1']"
因为我用的是“!=”运算符,我无法使用'has_selector'(或者我可以?)的'args'参数
有什么想法吗
提前感谢:)
=
不是有效的CSS属性比较器(至少在chrome中是如此)。你可能想试试
page.has_selector? "select#select_id option:not([value='1'])"
您可以使用
:not
伪类实现同样的效果。有趣的是——PhantomJS不报告!=这是一个错误,即使周围有空格。@Daveshweisguth试试这个。你看到错误了吗?我知道,我在Win7上使用phantomjs 1.9.7-9。是的,我知道!看起来像是水豚或恶灵的工具或吃的东西=代码>。简短的调查显示,水豚对选择器进行了大量的处理,所以也许这就是原因。@Dave Schweisguth:它不是一个有效的CSS选择器,句号。如果它被接受,那么相应的实现可能只是在做它自己的事情。而且,:not()
不是一个伪元素,而是一个伪类。