使用Ruby Watir进行浏览器自动化时如何不定位元素直接输入文本?
解决方案
Watir封装了Selenium的原生能力,完全支持无需提前定位元素、直接向当前聚焦的元素输入内容,有两种常用实现方式:
方式1:操作当前活跃元素
先获取当前已经获得焦点的元素,再执行输入操作,稳定性更高:
# 获取当前聚焦的活跃元素 target_element = browser.switch_to.active_element # 输入指定文本 target_element.send_keys "你需要输入的文本内容" # 发送回车 target_element.send_keys :enter
你也可以把输入和回车合并成一行调用:
target_element.send_keys "你需要输入的文本内容", :enter
方式2:全局直接发送按键
如果100%确认当前焦点已经落在目标输入栏上,可以直接向浏览器全局发送输入指令,不需要获取元素:
browser.send_keys "你需要输入的文本内容", :enter
注意事项
- 两种方案都依赖输入操作执行前,焦点确实落在目标输入栏,否则内容会输入到其他获得焦点的元素中
- 特殊按键的调用规则和定位元素后调用
send_keys的规则完全一致
内容的提问来源于stack exchange,提问作者SébastienR
相关产品推荐
相关产品推荐

