找到可见元素

Alj*_*jaz 1 watir watir-webdriver

有没有办法用Watir定位可见元素?

我想只找到可见的表单(通过索引参数),以便Watir返回第一个或第二个可见文本字段.

如何过滤不可见的字段/元素?用xpath可以做到吗?

Žel*_*pin 5

这将返回第一个可见文本字段:

browser.text_fields.select {|text_field| text_field.visible?}[0]
Run Code Online (Sandbox Code Playgroud)

您可以在文本字段中设置文本,如下所示:

browser.text_fields.select {|text_field| text_field.visible?}[0].set "text"
Run Code Online (Sandbox Code Playgroud)

这将返回第二个可见文本字段:

browser.text_fields.select {|text_field| text_field.visible?}[1]
Run Code Online (Sandbox Code Playgroud)

请注意,元素可见,但已禁用.

  • 你可以进一步缩短它:`browser.text_fields.select(&:visible?)[0]` (3认同)
  • 你可以使用`select`来缩短它,因为它不需要`compact`.这应该等同于`browser.text_fields.select {| text_field | text_field.visible?}` (2认同)