2015-03-03 51 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