当前位置: 首页 > 知识库问答 >
问题:

Robotframework Selenium2库头覆盖在页面滚动期间要单击的元素上

昝涛
2023-03-14

我将Robotframework Selenium2库与python库和Firefox浏览器一起用于自动化我们的web应用程序。当点击事件即将发生时,出现以下问题,

web应用程序中的标题在页面滚动期间是不可移动的(即,每当发生页面滚动时,标题将始终可供用户查看,仅可滚动内容)。现在的问题是,当要单击的元素在页面视图中不可用时,单击事件将尝试滚动页面以使该元素位于网页顶部,正好在标题下方(重叠),单击事件从不发生,位于异常下方。

消息元素在点(1362.63330078125, 15.5)不可单击。其他元素将收到点击:https://url/url/chat/chat.asp,弹出窗口,高度=600,宽度=680,滚动条=否,可调整大小=是,目录=否,菜单栏=否,状态=否,工具栏=否));"

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

标题始终可见是我们的web应用程序中的一项功能,由于此scrips失败,能否有人帮助解决此问题并使单击事件成功执行?

共有3个答案

曹奇文
2023-03-14

我们可以使用executejavascript来单击元素。我在Python3中使用这个。

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

使用ID/xpath作为Web定位器的参考:机器人框架:使用执行JavaScript单击元素

颛孙高义
2023-03-14

如果您知道该元素是可单击的,并且无论如何只想单击,请尝试使用具有0,0偏移量的单击坐标处的元素。它会忽略它被模糊的事实,只会点击。

路奇
2023-03-14

如果我理解正确的话,当你点击一个元素时,页面会向下滚动,直到它可见为止。因为您有一个透明的标题,所以元素将停留在它下面,无法单击。我的解决方案是创建一个新的关键字,向下滚动直到元素可见,然后再向下滚动一点。

*** 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
 类似资料:
  • 我在跑咕噜-量角器-转轮。

  • 我尝试过许多不同的解决方案,但都不是我想要的。我想让键盘显示在内容上方(保持内容大小不变),同时能够滚动到键盘覆盖的输入元素。 我尝试过的每一个解决方案都会给我一个或另一个,但不是两个都给。 我尝试过的解决方案: 这里是解决方案。将android:WindowsOfInputMode=“adjustPan”和android:configChanges=“orientation | keyboard

  • 问题内容: 好吧,我有些困惑。 我试图考虑来自jQuery背景的角度方式。 问题:如果窗口不滚动,我只想隐藏一个固定的元素。如果有人向下滚动页面,我想隐藏该元素。 我尝试创建一个自定义指令,但由于滚动事件未触发,因此无法使其正常工作。我在想一个像下面这样的简单控制器,但是它甚至没有运行。 控制器: 视图 实时预览 http://www.thewinetradition.com.au/new/#/p

  • 问题内容: 在我们的一个内部角度应用程序中,显示了一个许可证文本框。由于内部有很多文本,因此以元素表示的许可证框具有滚动条。 问题: 如何测试元素是否具有滚动? 这是元素的HTML表示形式: 在哪里定义了以下CSS样式: 问题答案: 技巧(最初在这里提出)是比较属性: 该CSS属性指定 元素的内容区域的高度 。内容区域位于元素的填充,边框和边距之内。 与: 的只读属性是一个 元素的含量的高度,其中

  • 我有一个很好的SVG元素,我通过从0px-70px增长它来动画。这个元素也是一个按钮,在悬停时有一个很好的笔划动画。我的问题是,用于笔划动画的CSS过渡属性会影响元素出现时的增长速度。我不想我的悬停动画去太快,但出现动画是太慢了。 JS: http://codepen.io/anon/pen/qbelqy 除了用jQuery手动更改transition属性之外,还有什么方法可以解决这个问题吗?这是

  • 我使用Python 3和Selenium来自动化浏览器活动。在我正在工作的页面上,我有一个按钮,当点击时,它会加载一个下拉菜单。然而,在检查时,我相信下拉框是在点击按钮后生成的,因为我没有看到页面加载菜单的html。 我正在使用以下代码 html 这个菜单大概是通过JS加载的,我试图点击的按钮是文本帐户 这将加载网站,并单击下拉菜单。我在下拉菜单中看到按钮加载,我正试图让浏览器单击该按钮,但它从未