首页 文章

元素在点上不可点击 - 但事实上它点击了

提问于
浏览
2

我的测试失败了:

WebDriverException:消息:未知错误:元素在点(1 786,183)处无法单击 . 其他元素将收到点击:<'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>

the button is really clicked in the test - >数据已保存 - 所以没关系 . 我只是不明白为什么它在正确点击时抛出异常,我该怎么办才能让它通过..很明显,它找到了元素并点击它...我也尝试使用"wait until element is enabled"和"focus" ...谢谢你的任何建议! PS:我在异常中添加了字符"'"到div元素,否则这里没有显示.. :)

3 回答

  • 0

    怎么样: wait until element is visible ${UPDATE} mouse down ${UPDATE} mouse up ${UPDATE}

    为我工作了一些奇怪的表演元素..

  • 0

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

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

    只是为了调试并确保驱动程序不会绊倒自己 . (这是我遇到的问题)如果这样可以工作并通过,那么你将需要基本等待比按钮处于活动状态更长的时间 . 网页的另一部分需要更长时间才能加载吗?如果是这样的话 .

    但是,当你可以的时候,摆脱关键词,因为这是非常糟糕的做法 .

  • 0

    我使用以下方法 .

    • 找到页面完全加载后可见的元素 .

    • 得到它的xpath

    使用以下关键字:

    Wait Until Keyword Succeeds  Page Should Contain Element  ${Xpath}
    Click Element  ${Element}
    

    这将帮助您避免在测试用例中使用 sleeps .

相关问题