【问题标题】:On Mac, Katalon Studio Unable to Click Button, Wants to Click the HTML Parent Tag Instead在 Mac 上,Katalon Studio 无法单击按钮,想要改为单击 HTML 父标记
【发布时间】:2018-08-11 06:30:57
【问题描述】:

我在 Katalon Studio 中有一个按钮单击命令,我使用 scrollIntoView 将按钮显示在视图中,然后单击该按钮。

((JavascriptExecutor) functiondriver).executeScript("arguments[0].scrollIntoView({block: \"nearest\"});", buttonelement);
WebUI.delay(4)    
WebUI.click(findTestObject('object/path'))

在执行时使用 Chrome,代码在 Windows 计算机上运行良好,但在 Mac 计算机上大约 40% 的时间出现以下错误:

Unable to click on object '/object/path/' (Root cause: org.openqa.selenium.WebDriverException: unknown error: Element <button class="classname">...</button> is not clickable at point (750, 548). Other element would receive the click: <html lang="en">...</html>

我在网上四处寻找解决方案,并尝试通过添加您在上面看到的延迟来解决这个问题,但这没有奏效。此外,在自动化运行时查看浏览器时,我可以直观地看到应该点击的按钮 - 所以它不像按钮没有加载。是否有另一种方法可以编写此代码以使其更一致地工作?

更新:我已经尝试过这个答案和相关问题中建议的更智能的等待功能,但都没有奏效。我想强调的是,这个问题只发生在 Mac 机器上,不会出现在 Windows 上;这就是使这个问题与其他类似问题不同的原因。

我确实发现了。通过 Katalon Studio 运行脚本时,Chrome 默认不会最大化窗口。但是,我做了一个实验,我强制浏览器最大化并解决了问题。因此,当浏览器不是全屏时,Katalon Studio 似乎无法在 Mac 上设置 x,y 坐标。这是我在 Mac 机器上使用 WebUI 的安装或已知行为的某种校准问题吗?

【问题讨论】:

  • @DebanjanB 请查看我的更新,问题出在 Mac 机器上,或者安装时存在某种校准问题。
  • 问题可能不在于您正在最大化,而在于您正在单击窗口成为焦点? (最大化时会发生这种情况)
  • 我选择了 chrome 窗口(没有最大化它)并且问题仍然存在,所以这似乎不仅仅是窗口失焦的问题。

标签: selenium cross-browser browser-automation katalon-studio


【解决方案1】:

延迟是自动化的重要组成部分,有时按钮看起来就在那里,但在要与之交互的那一刻,它可能还没有准备好。这个时间范围通常非常小,而且太快而无法用肉眼看到。

WebUI 有一系列用于执行动态等待的助手,它们等待元素满足某些条件,而不是总是等待 X 秒。

Instead of WebUI.delay(4)

你可以试试这样的:

WebUI.waitForElementClickable(findTestObject('object/path'))

如果问题确实是它在页面准备好让您单击按钮之前尝试交互太快,那么这将强制延迟一直持续到 Selenium 确定按钮处于允许的状态你点击它。

【讨论】:

  • 感谢您的回答,但没有解决我的问题。这似乎是我在 MacOS 上安装 Katalon Studio 的问题,而不是代码本身。请查看我的更新。
【解决方案2】:

我终于找到了问题。 Mac 添加了一个滚动条,它悬停在页面内容上。除非您将鼠标悬停在它上面以使用它,否则它是不可见的。就我而言,我在使用滚动到视图时使用了“最近”,这有时(但并非总是)导致按钮位于页面的最底部。在这种情况下,水平滚动条悬停在按钮上。这就是为什么当我最大化窗口时问题消失了,以及为什么在 Windows 机器上不会出现问题。我通过将我的 scrollIntoView 脚本更改为:

scrollIntoView({block: \"center\"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 2015-05-07
    • 2022-10-18
    • 2013-02-04
    • 2013-07-23
    相关资源
    最近更新 更多