1

我正在使用带有 python 基础和 Firefox 浏览器的 Robotframework selenium2Library 来自动化我们的 Web 应用程序。当点击事件即将发生时,会出现以下问题,

Web 应用程序中的标题在页面滚动期间是不可移动的(即,每当页面滚动发生时,标题始终可供用户查看,只有内容被滚动)现在的问题是,当即将被点击的元素在页面中不可用时查看,单击事件尝试滚动页面以将元素置于网页顶部,该元素正好位于标题下方(重叠),并且单击事件永远不会发生,低于异常。

WebDriverException:消息:元素在点(1362.63330078125、15.5)处不可点击。其他元素会收到点击: https://url/url/chat/chat.asp','popup','height=600, width=680, scrollbars=no, resizable=yes, directory=no, menubar=no , 状态=否, 工具栏=否'));">

我已经尝试过等待直到页面可见关键字,但这仍然没有帮助,因为下一个语句,单击事件(单击元素,单击链接等)再次向上滚动到标题。

始终可见的标题是我们的 Web 应用程序中的一项功能,由于此脚本失败,有人可以帮助解决这个问题并使点击事件成功执行吗?

4

3 回答 3

1

因此,如果我理解正确,当您单击一个元素页面时,它会向下滚动到足够可见的程度。因为你有一个透明的标题,元素停留在它下面并且不能被点击。我的解决方案是创建一个向下滚动的新关键字,直到元素可见,然后再向下滚动一点。

*** Settings ***
Library      Selenium2Library

*** Keywords ***
Scroll And Click
    [Arguments]           ${element}
    Execute Javascript    window.document.evaluate("//*[@id='${element}']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.scrollIntoView(true);
    Execute Javascript    window.scrollBy(0, -200)
    Click Element         ${element}

*** Test Cases ***
Scrolltest
    Open Browser        http://www.stackoverflow.com/    gc
    Scroll And Click    hireme
于 2016-10-21T10:25:35.897 回答
0

我们可以使用 Execute JavaScript 来单击元素。我在 Python3 中使用它。

${Element} = Get WebElement | xpath=//input[@id=image]
Execute JavaScript | arguments[0].click();  | ARGUMENTS  |  ${Element}

使用 ID/xpath 作为网络定位器的参考: Robot Framework: Click Element using Execute JavaScript

于 2021-07-07T11:06:21.430 回答
0

如果您知道该元素是可单击的,但仍想单击,请尝试使用在坐标处单击元素,偏移量为 0,0。它会忽略它被遮挡的事实,只会点击。

于 2020-04-28T18:01:14.960 回答