单击子跨度类(Watir / Ruby)中的父按钮

时间:2018-07-12 19:49:15

标签: ruby watir

<button class="class1">
  <span class="class2">Text</span> 
</button>

我在页面上有几个按钮实例。我想在通过class1找到span之后,点击带有class2的按钮。单击按钮后,class2变为class3。然后,我要循环执行此操作,直到所有class2都变为class3

这是我目前正在做的事情:

while browser.span(:class => "class2").present? == true
  media = browser.spans(:class => "class2")
  media.each { |val|
    val.parent.button(:class => "class1").click
    sleep(1)
  }
end

val.parent.click进行斗争。我知道我不应该使用睡眠,但这只是为了测试。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

val.parent.button(:class => "class1").click行将在跨度的父元素内寻找一个按钮元素。有了HTML结构,您只需转到父元素-即value.parent.click

我认为您可以做到:

media = browser.spans(:class => "class2")
media.each { |val|
  val.parent.click
  val.wait_until { |e| e.class_name == "class3" }
}

请注意,我省略了外部while循环。除非将跨度切换回“ class2”,否则我认为没有必要。