使用Robot Framework(使用Selenium)自动填写表单 - 它是电子商务网站上的结帐页面, 在尝试输入测试信用卡的CVC代码时,最后一步出现错误, 机器人抛出一个" InvalidElementStateException:消息:无效的元素状态:元素当前不可交互,可能不会被操纵" 当场地清晰可见且可操作时。
使用Chrome,而非Firefox(无法使用FF)
我确保测试向下滚动页面以查看字段,但它仍然认为该字段是隐藏的或不可操作的。
有没有人遇到同样的问题?
失败的代码部分在这里:
Card Payment is Visible
Execute JavaScript window.scrollTo(0,700)
Wait Until Page Contains Expires
Focus xpath=//*[@id="securityNumber"]
I Enter the CC Security Code
Input Text securityNumber ${CHECKOUT_CARD_CODE}
I Click Submit Order
Submit Form forms.payByCardForm
(关于" Focus""输入文字"是失败的。我验证了文本" Expires"是可见的,它是'在CVC领域正上方......)
我也尝试过: 等到元素可见id = securityNumber
但它仍然失败。 它需要一个屏幕截图,它很清楚......
答案 0 :(得分:2)
哦,好吧......你自己建立的付款方式总是很麻烦。这个是使用AngularJS构建的,因此它更加麻烦。
我找到了如何使用css属性找到正确的字段,因为隐藏的表单包含具有相同ID和名称的相同字段。
我确实必须使用"睡眠"因为它也可以工作(thx Goralight)。
感谢其他所有人。
答案 1 :(得分:0)
使用唯一标识符。 “说明”字段存在相同的问题。使用View Source [Code]后,我在HEAD META标记中看到“描述”。更改了ID字段以使用“ product_description”-错误消失了。代码有效。