2013-10-18 43 views
1

在黃瓜一個自定義步驟,我寫這樣的:歧義錯誤[最後()]方法

find(:xpath ,"//ul//input[@placeholder = 'Enter Something'][last()]").set(value) 

並且Im獲取正則表達式曖昧匹配誤差:它是越來越兩個元件。 如何在黃瓜中使用xpath(或者甚至是css)?

我使用cucumber-1.2.1capybara-2.0.3

(請注意:在上面的兩個輸入字段的每個屬性都相同)

HTML:

<ul class = "someclass"> 
    <li> 
    <div> 
    <a></a> 
     <input></input> 
     <input placeholder = "Enter Something"></input> 
    </div> 
    </li> 
<li> 
    <div> 
    <a></a> 
     <input></input> 
     <input placeholder = "Enter Something"> // This is the element I want 
     </input> 
    </div> 
    </li> 
</ul> 

回答

1

你需要一組額外的括號在你的xpath中:

"(//ul//input[@placeholder = 'Enter Something'])[last()]" 
+0

完美!我是xpath的新手,所以你可以解釋一下括號意味着什麼? – Rajarshi

+1

這不是一個特別的技術解釋,但AFAIK'// ul // input [@placeholder ='Enter Something'] [last()]'意思是「找到最後一個輸入, ul'「,而括號的意思是」獲取所有匹配的輸入,然後找到最後一個「小但微妙:) – StuartLC

+0

有沒有什麼辦法可以得到第一個元素? – Rajarshi