5

我有一个名称中带有冒号的 CSS 选择器,这显然是个问题。

例子:

selector = 'input#billing:street1'
find(selector)

我收到以下错误消息:

The browser raised a syntax error while trying to evaluate the selector "input#billing:region_id" (Capybara::Poltergeist::InvalidSelector)

有没有办法按原样使用选择器?我知道我可以做这样的事情:

selector = 'billing:street1'
find(:xpath, ".//input[@id='#{selector}']")

但出于各种原因,我不想这样做。

我使用 Cucumber、Capybara、Poltergeist/PhantomJS

4

1 回答 1

7

根据我对 CSS 和 Javascript 的经验,这更像是一个有根据的猜测,但你可以尝试这样的事情:

selector = 'input#billing\:street1'
find(selector)

注意冒号前面的反斜杠,这会转义 CSS 中的字符。然而,对于 Javascript,它略有不同。您将需要两个斜杠来转义字符。像这样:

selector = 'input#billing\\:street1'
find(selector)

我不确定哪个可以解决问题(如果可以的话),因为我对 Cucumber、Capybara 和 Poltergeist/PhantomJS 的经验为零,但根据您的代码,您似乎想先尝试双斜杠\\选项.

于 2013-07-31T16:23:45.787 回答