2015-03-03 45 views
0

我使用watir來控制一個IE頁面。在ruby/watir中使用通配符

我有這樣的命令: -

browser.frame(:id,"ultraposuidialoghtm0").div(:class," content").button(:id,"ok").click 

然而ultraposuidialoghtm0部分的增量,所以我得到ultraposuidialoghtm1

如何標記我的id作爲ultraposuidialoghtm*

回答

1

看起來它支持method calls中的正則表達式。也許這是值得嘗試的東西,如:

browser 
    .frame(:id, /ultraposuidialoghtm[0-9]*/) 
    .div(:class," content") 
    .button(:id, "ok") 
    .click 

我不能真正測試它,但它可能是麥芽汁檢查!

祝你好運!

+0

/something * /,多數民衆贊成在所有我需要感謝。 – 2015-03-03 13:35:11

0

如果id值正在按照html規範使用,那麼它們在頁面或框架內是唯一的。在這種情況下,你可以使用

browser 
    .frame(:id, /ultraposuidialoghtm[0-9]*/) 
    .button(:id, "ok").click 

使用正則表達式可能會很慢但是,如果框架的頁面的數量和順序是已知的,或者如果框架是由其他一些簡單的包含找到容器元素,那麼你可能想要通過索引來定位,或者只是容器中的第一幀。

browser.div(:class => 'frame holder').frame.button(:id => 'ok').click