Robot Framework + Selenium无法在字段中输入文本,抛出InvalidElementStateException

时间:2017-02-14 10:19:53

标签: google-chrome selenium robotframework

使用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

但它仍然失败。 它需要一个屏幕截图,它很清楚......

2 个答案:

答案 0 :(得分:2)

哦,好吧......你自己建立的付款方式总是很麻烦。这个是使用AngularJS构建的,因此它更加麻烦。

我找到了如何使用css属性找到正确的字段,因为隐藏的表单包含具有相同ID和名称的相同字段。

我确实必须使用"睡眠"因为它也可以工作(thx Goralight)。

感谢其他所有人。

答案 1 :(得分:0)

使用唯一标识符。 “说明”字段存在相同的问题。使用View Source [Code]后,我在HEAD META标记中看到“描述”。更改了ID字段以使用“ product_description”-错误消失了。代码有效。