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点击当前不可见的元素?