如何使用Watir和Ruby定位Twitter登录按钮?代码报错求助
解决Watir定位Twitter登录按钮的问题
先帮你梳理下问题里的几个关键错误,这就是导致找不到元素超时的核心原因:
1. 代码里的语法与拼写错误
你写的class数组存在两个明显问题:
- 数组元素之间缺少逗号分隔,Ruby里数组元素必须用逗号隔开,否则会报错
- 拼写错误:
EdgeButtom--medium里的Buttom是笔误,HTML里的正确类名是EdgeButton--medium
2. 多余的定位条件
browser.button本身已经限定了目标是button元素,所以:tag_name=>"button"这个条件完全没必要加,属于冗余代码。
修正后的代码
直接用正确的class数组定位:
# Click Login Button browser.button(class: ['submit', 'EdgeButton', 'EdgeButton--primary', 'EdgeButton--medium']).click
更简洁的定位方式
其实你还可以用更直观的方式定位,避免复杂的class组合:
- 用按钮文本定位(最直观):
browser.button(text: 'Log in').click
- 用type属性定位(因为这是submit类型按钮):
browser.button(type: 'submit').click
这些方式都能精准定位到登录按钮,避免因为class拼写或语法错误导致的定位失败。
内容的提问来源于stack exchange,提问作者Seio. E.
相关产品推荐
相关产品推荐

