2013-07-31 114 views
4

我有一個CSS選擇器,冒號在名稱中,這顯然是一個問題。水豚/ Poltergeist:帶冒號的CSS ID提升Capybara :: Poltergeist :: InvalidSelector

例子:

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}']") 

但我寧願不要這樣做是因爲各種原因。

我用黃瓜,水豚,騷靈/ PhantomJS

回答

6

這更多的是基於我的CSS和Javascript經驗猜測的,但你可以嘗試這樣的事:

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

注意的在冒號前面的反斜線,這會轉義CSS中的字符。但對於Javascript而言,它略有不同。你需要兩個斜線才能逃離角色。像這樣:

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

我不知道哪一個會做的伎倆(如果任一會),因爲我有黃瓜,水豚,和騷靈/ PhantomJS零經驗,但根據您的代碼看起來好像你會想先嚐試雙斜槓\\選項。

+0

謝謝你,這個伎倆。我使用了一個反斜槓,這就足夠了。真棒! – TrashyMcTrash

+0

沒問題,很高興它的工作! –

相關問題