2014-05-14 78 views
0

我有一個網站,我需要登錄,但輸入文本字段ID和名稱之一每次更改。有沒有辦法通過正則表達式訪問元素?提前致謝。ruby​​ watir網頁驅動程序無法訪問動態元素

實施例:

ID = 「形式:渦卷:j_idt1297:0:j_idt1298:輸入」
ID = 「形式:渦卷:j_idt2151:0:j_idt2152:輸入」

<input class="iceInpSecrt large" 
id="form:wrap:j_idt1297:0:j_idt1298:input"  
name="form:wrap:j_idt1297:0:j_idt1298:input" 
onblur="setFocus('');" onfocus="setFocus(this.id);" 
onkeyup="iceSubmit(form,this,event);" 
onmousedown="this.focus();" tabindex="" type="password" value=""> 

回答

3

是,你可以使用正則表達式匹配元素。它類似於通過字符串查找id /名稱。

它看起來像:

browser.text_field(:id => /a_regex/) 

對於你的榜樣,下面的定位與任一提到ID的文本字段:

browser.text_field(:id => /form:wrap:j_idt\d{4}:0:j_idt\d{4}:input/) 

注:

  • 你會需要驗證這個正則表達式不會最終匹配頁面上的其他元素。如果確實如此,則需要使用有關元素(可能是類)或元素周圍的信息(可能是字段標籤)的其他信息來使搜索更具體。
  • 根據頁面上的其他元素,這個正則表達式可能比你需要的更具體。例如,也許只是第一部分是獨特的。在這種情況下,你可以做/form:wrap:j_idt/
+0

這樣做的伎倆!非常感謝!!!! – user1279586

相關問題