我有一个奇怪的问题。为了进行测试,我尝试使用无头的镀铬版本运行硒。我使用守夜来测试我的JavaScript React应用程序。
我的一个组件使用onMouseEnter事件显示一个子菜单,但是当我使用守夜人的moveToElement方法时,它适用于普通的chrome,但不适用于无头的chrome。它没有给我任何错误,但是子菜单没有显示。
这是我的守夜人测试:
browser
// Load the page at the launch URL
.url(browser.launchUrl).useXpath()
// wait for page to load
.waitForElementVisible("//ul/li/div/span[text()='Login']", 5000)
//hover over Login
.moveToElement("//ul/li/div/span[text()='Login']", 10, 10)
//wait for submenu
.waitForElementVisible("//ul/li/ul/li/a/span[text()='Login']", 500)
当我使用普通的chrome运行它时,它成功完成了测试,但是使用chrome --headless时,出现以下错误:
- open login modal (5.22s)
Timed out while waiting for element <//ul/li/ul/li/a/span[text()='Login']> to be present for 500 milliseconds. - expected "visible" but got: "not found"
at Object.open login modal
at process._tickCallback
我不确定为什么在无头模式下会发生这种情况,以及如何防止这种情况发生。
编辑:我现在通过更新我的react菜单组件(rc-menu v5 => v7)解决了我的问题,尽管它仍然不知道为什么以前不起作用,但它现在也可以在无头模式下使用。