TestCafe 元素可见但无法点击

Posted

技术标签:

【中文标题】TestCafe 元素可见但无法点击【英文标题】:TestCafe Element is Visible but cannot be clicked 【发布时间】:2018-11-30 01:34:16 【问题描述】:

我正在使用 Chromium 68 headless 在 Alpine docker 映像中运行 TestCafe 来测试 React 应用程序。我可以进行其他测试,但由于某种原因,我遇到了一个问题,即某个元素似乎可见但无法单击。

.expect(Selector('.ui.text.vertical.marketplace-side-nav.menu').find('a').withText('Pending').visible).ok()
.click(Selector('.ui.text.vertical.marketplace-side-nav.menu').find('a').withText('Pending'))

第一行通过,但第二行给出以下错误:

1) The element that matches the specified selector is not visible.

我尝试在 TestCafe Studio 上设置测试并尝试了多个选择器。我在开头设置了.resizeWindow(2000, 1000),以确保响应式用户体验没有问题。

编辑

Dockerfile 有一些其他的开发内容,但相当简单。

项目本身是专有的,所以我不能在这里分享代码。

【问题讨论】:

您的测试场景看起来有效。您能否在您的项目中提供 Docker 映像或 Dockerfile,以便我们重现此问题? 所以,这是调整大小的问题,我添加了代码来临时删除小屏幕上的导航隐藏,它起作用了。不幸的是,当我尝试在 headless 上使用 resizeWindow 时,我得到了 Cannot read property 'Emulation' of undefined,所以请调查一下。 如果其他人被卡住的最终结果:旧版本的 Alpine Docker 映像正在安装 Chromium 57(我在其他地方安装了 v68 并运行构建以确认)。升级 Alpine 和 Chromium(现在 61+)修复了很多问题,现在模拟(进而调整大小)也可以正常工作。 @Fluidbyte,感谢您与大家分享您的发现。既然您已经找到了发生的事情,我建议您发表评论作为对您自己问题的回答,以便人们在遇到类似问题时参考它。 【参考方案1】:

根据作者的评论:

如果其他人被卡住,最终结果:旧版本的 Alpine Docker 映像正在安装 Chromium 57(我在其他地方安装了 v68 并运行构建以确认)。升级 Alpine 和 Chromium(现在 61+)修复了很多问题,现在模拟(进而调整大小)也可以正常工作。

【讨论】:

以上是关于TestCafe 元素可见但无法点击的主要内容,如果未能解决你的问题,请参考以下文章

悬停时可见元素,但单击时不可见

元素不可见错误(无法单击元素)

如何强制Selenium WebDriver点击当前不可见的元素?

等待元素在量角器中可见

javascript - 如果元素不可见,是不是会在元素上触发点击事件?

当软键盘可见时,无法单击按钮