2016-08-23 112 views
1

我已經有一個同事問他幫助他的問題,但我也陷入了困境。水豚黃瓜匹配器

他想從列表中找到一個可點擊的元素。

該列表包含:

list = [ 'cat : B', 
     'cat : B1', 
     'cat : BE' 
     ] 

當他遍歷列表,如預期cat : B第一次迭代點擊。下一次迭代也會點擊cat : B而不是B1

使用的代碼是:

list.each do |cat_item| 
find('li.category', text: cat_item, :match => :prefer_exact).click 

這看起來好像水豚只是儘可能的第一個B匹配和思考它的發現的元素,而不是匹配B1或BE。

有沒有辦法解決這個問題?我試過幾種方法

回答

0

:prefer_exact匹配選項對:text選項沒有影響(exact: true也不影響它們 - 它們隻影響使用XPath.is方法的選擇器 - 選擇器如:field,:label,:button等這需要一個字符串來匹配標籤文本)。要使用:text選項進行精確匹配,您需要傳遞正則表達式。也就是說,當你傳遞B1時,它不應該僅僅匹配B,你是否已經打印出找到的元素的文本以確認它實際上找到了哪些元素,並且它不是你的點擊處理程序的問題?