2014-11-06 19 views
1

我必須填寫一個強制性的文本字段和HTML是如下確定一個text_field沒有獨特的屬性

<input type="tel" id="54221" class="NEdit" title="" maxlength="5" style="position: absolute; overflow: hidden; font-style: normal; font-weight: normal; font-family: arial; font-size: 12px; text-align: right; width: 41px; left: 136px; top: 83px; height: 14px;">

id是動態的,所以我想 text_field(:trouble, :type => 'tel', :max_length => '5')text_field(:trouble, :type => 'tel', :title => '')text_field(:trouble, :type => 'tel', :title => '', :max_length => '5')

似乎沒有任何工作。有什麼建議麼?請讓我知道。謝謝!

回答

1

根據像maxlength這樣的屬性定位元素存在一個突出的問題。我遇到了與tabindex類似的問題(請參閱Issue 207)。尚未解決的一般問題是Issue 28

Watir將定位器轉換爲XPath時,會發生此問題。它結束了一個XPath其中屬性名稱不匹配:

//input[@max-length="5" ... 

一個解決辦法是繞過這個邏輯並創建一個CSS選擇器或XPath自己。使用最大長度兩種方法可以重新寫爲:

text_field(:trouble, :css => 'input[type="tel"][maxlength="5"]') 
text_field(:trouble, :css => 'input[type="tel"][maxlength="5"][title=""]') 

未使用最大長度的其他嘗試似乎按預期方式工作:

text_field(:trouble, :type => 'tel', :title => '') 
+0

我已經試過'text_field(:麻煩, :type =>'tel',:title =>'')'(參見上面的問題)。但是有一個以上的title =''。所以我用了一個索引。 'text_field(:trouble,:type =>'tel',:title =>'',:index => 1)'正在工作!非常感謝你! – mkum 2014-11-10 15:04:16

+0

有沒有一種方法可以用它們的可見性來區分這兩個相似的對象?我有一個不可見的對象。請告訴我。謝謝! – mkum 2014-11-11 19:20:28

+0

我不得不這樣做,所以簡短的答案是「是」。但是,解決方案通常取決於頁面。我會建議創建一個HTML示例來顯示問題並將其作爲新問題發佈。 – 2014-11-11 20:18:53