虽然自动化各种OAUTH提供程序的集成测试集合,但我发现watir似乎不适用于Fitbit auth页面,并且总是报告text_fields被禁用,无论我做什么。
这可能是watir中的错误,或者它可能是Fitbit页面特有的东西(破坏的HTML或故意的反脚本代码)。
fitbit页面位于https://www.fitbit.com/oauth2/authorize/
watir可以检测到text_field存在的电子邮件:
browser.wait_until{ browser.text_field( name: 'email' ).exists? }
但是任何与它交互的尝试都会报告一个被禁用的错误:
browser.text_field( name: 'email' ).wait_until_present
我已经尝试过浏览页面上的所有字段以查看是否启用了该功能,并且我尝试使用browser.driver.action.move_to
点击该元素,但似乎没有任何效果。
有什么想法吗?
答案 0 :(得分:1)
问题是有3个文本字段,名称为“email”。如果您获得了文本字段的集合,则可以看到只有部分文本字段可见:
browser.text_fields(name: 'email').map(&:visible?)
#=> [false, true, false]
Watir与第一个匹配进行交互,在这种情况下,该匹配是隐藏字段之一。你实际上想要第二个字段 - 即可见字段。
您可以使用:visible
标志告诉Watir找到第一个可见的标记:
browser.text_field(name: 'email', visible: true).set('value')