selenium - 元素无法点击 - 但它实际上点击

标签 selenium xpath automated-tests robotframework selenium2library

我的测试失败了:

WebDriverException: Message: unknown error: Element is not clickable at point (1 786, 183). Other element would receive the click: <'div align="right">...<'/div>



我访问的xpath是:
${UPDATE}    xpath=//button[@type='submit' and contains(text(),'Update')]

在关键字中使用:
    wait until element is visible   ${UPDATE}
    click element    ${UPDATE}

来源:
<div align="right">
    <button type="submit" class="btn btn-primary ng-binding" ng-click="submitForm()" ng-disabled="updateDisabled">Update</button>
    <button type="button" class="btn btn-primary" ng-click="reset(projectForm)" ng-disabled="updateDisabled">Reset</button>
</div>

但是按钮在测试中真的被点击了 -> 数据已保存 - 所以没问题。
我只是不明白为什么它在正确点击时会抛出异常,我该怎么做才能让它通过..很明显它找到了元素并点击了它......我也尝试使用“等到元素已启用”和“焦点”...感谢您的任何建议!
PS:我在div元素中加了字符“'”,否则这里不显示..:)

最佳答案

虽然这样做真的很糟糕,但我建议放置几个 Sleep 1s测试用例周围的关键字,例如:

Sleep    1s
Wait Until Element Is Visible   ${UPDATE}
Sleep    1s
Click Element    ${UPDATE}
Sleep    1s

只是为了调试并确保驱动程序不会被自己绊倒。 (这是我遇到的问题)
如果这然后有效并通过,那么您基本上需要等待比按钮处于事件状态更长的时间。网页的另一部分是否需要更长的加载时间?如果是这样使用。

但是,如果可以,请摆脱 Sleep 1s关键词,因为它真的是不好的做法。

关于selenium - 元素无法点击 - 但它实际上点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41045804/

相关文章:

html - 与 Capybara 中深度嵌套的单选按钮交互

testing - 使用一台物理测试机进行多个团队项目

selenium-webdriver - Selenium Webdriver 查找元素(一个按钮)

javascript - 使用 Selenium 总是得到 'Error: timeout of 2000ms exceeded'

xml - 什么是xm-replace_text?

python3/selenium/automation - 查找包含给定字符串的 ID

html - Lxml cssselect 通配符

sql-server - 在 Katalon Studio 中连接到数据库并从数据库中获取一些信息

python - 如何使用带有 Python 的 Selenium 单击确认按钮?

java - 配置 PhantomjsDriver 运行 selenium 测试用例