【问题标题】:ElementClickInterceptedException: Message: element click intercepted: Other element would receive the click - Click Element or Button Failing in RobotElementClickInterceptedException:消息:元素点击被拦截:其他元素将接收点击 - 机器人中的点击元素或按钮失败
【发布时间】:2021-08-26 04:06:22
【问题描述】:

点击元素或点击按钮在机器人框架中不起作用。

登录页面的简单代码块

    ${chromeOptions}=    Create Dictionary  acceptInsecureCerts=${True}
    Open Browser  ${url}  ${browser}  desired_capabilities=${chromeOptions}
    Maximize Browser Window
    sleep  5s
    Wait Until Page Contains  Welcome to Mavenir CMS.
    Input Text  name:user name  ${username}
    Input Text  name:password  ${password}
    Wait Until Page Contains Element  xpath://button[@type="submit"]
    Click Button  xpath://button[@type="submit"]
#    Press Keys  \  ENTER
    sleep  15s
    Wait Until Page Contains Element  xpath:${home_settings}

实际上,在同一仪表板的先前版本之前,相同的代码一直在工作。现在尝试单击元素时出现错误

代码通过直到Wait Until Page Contains Element xpath://button[@type="submit"] 该元素已加载并且可用,但是当我尝试单击它时,它没有发生。

我尝试为同一个按钮提供不同的定位器方式,如下所示:

xpath://button[contains(text(),'Login')]

类:btn-primary

xpath:/html/body/my-app/div/headerapp/div/div[2]/login/div[1]/div/div/div[2]/form/div[3]/button[ 1]

css:body > my-app > div > header-app > div > div.col-md-12 > login > div.login-overlay > div > div > div.login-right.pull-right > form > div.group.pull-top-2 > button.btn-primary

和上面代码块中看到的那个。 所有这些都返回相同的异常--> ElementClickInterceptedException

我尝试在两者之间添加睡眠,但仍然是同样的问题。

有效的是,如果单击元素/按钮,我给了Press Keys \\ ENTER

它工作并且登录成功,但是一旦登录到仪表板,当我再次尝试单击其中的任何其他元素/选项卡时,得到相同的异常。所以基本上除了点击操作我什么都能做,但点击是最重要的。

无法找到解决此问题的方法。任何帮助深表感谢。谢谢

【问题讨论】:

  • Robot Framework 没有问题,只是您与网页交互的方式有问题。仔细看看错误,通常 selenium 会给你正在接收点击的对象,这将是发生了什么的线索。它可能是几件事,屏幕上的弹出窗口,它在 ui 中不可见等,所以没有网页代码就不可能指出错误
  • 感谢您的回复克劳迪奥。
    这是本例中尝试点击的网页元素代码。

标签: selenium automation robotframework ui-automation


【解决方案1】:

当页面加载了片刻,然后元素因加载器或任何异步请求而消失时,就会发生这种情况。

Wait Until Page Contains Element   xpath://button[@type="submit"]
Wait Until Element Is Visible    xpath://button[@type="submit"]
Sleep    2s #This could be adjusted as per the time your application takes to load after first appearing. Usually this should be enough.
Wait Until Element Is Visible    xpath://button[@type="submit"]
Sleep    2s
Wait Until Element Is Enabled    xpath://button[@type="submit"]
Click Element    xpath://button[@type="submit"]

另外,使用Click Element 代替Click Button。有时,很少即使元素是一个按钮,Click Button 也不起作用。

【讨论】:

  • 感谢您回复阿凡达。我试过了,但即使现在,等到 Element Is Enabled 行执行得很好,但下一个 Click Element 行仍然抛出相同的异常..
    登录
    这是本例中尝试点击的网页元素
  • 对代码进行了编辑。请检查。我相信将Wait until element is visibleWait Until Page Contains ElementWait Until Element Is Enabled 结合使用应该可以解决这个问题。
猜你喜欢
  • 2021-10-08
  • 2019-12-13
  • 2019-09-24
  • 2019-11-08
  • 2019-12-29
  • 2021-04-17
  • 2020-01-04
  • 1970-01-01
  • 2021-12-31
相关资源
最近更新 更多