Selenium Headless Chrome React onMouseEnter

时间:2018-10-22 11:59:55

标签: reactjs selenium google-chrome headless

我有一个奇怪的问题。为了进行测试,我尝试使用无头的镀铬版本运行硒。我使用守夜来测试我的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)解决了我的问题,尽管它仍然不知道为什么以前不起作用,但它现在也可以在无头模式下使用。

0 个答案:

没有答案