当前位置: 首页 > 知识库问答 >
问题:

Selenium WebDriver-Mouseover和下拉菜单-浏览器内部/外部鼠标问题

东门佐
2023-03-14
        WebElement div_menu = driver.findElement(By.xpath("//div[text() = 'Trigger of the dropdown menu']"));

        WebDriverWait wait = new WebDriverWait(driver, 300);
        Actions builder = new Actions(driver);    
        builder.moveToElement(div_menu).build().perform();

        WebElement item_to_click = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Link_inside_the_dropdown_menu")));

        item_to_click.click();

如果在执行测试时,鼠标指针在浏览器上(因为它们没有完全最大化地启动),那么下面是结果:

  • Chrome:div_menu似乎得到了mouseover(因为css样式改变),但时间太短,所以下拉菜单永远不会出现
  • IE9:抛出此异常:org.openqa.selenium.elementNotVisibleException:不能单击element,但主要是div_menu获得mouseover,因此显示下拉菜单。尽管如此,item_to_click它根本没有被单击(顺便说一下,我不认为异常是问题的原因)。此外,这就像一个隐形鼠标一直放在div_menu上,因为当我移动真正的鼠标时,下拉菜单闪烁,就像div_menu失去悬停,每次我停止移动真正的鼠标时,它又回来了。
  • 火狐:正常工作。

现在,让我们看看当我把鼠标留在浏览器窗口外时会发生什么。

    null

提前非常感谢!

共有1个答案

海嘉赐
2023-03-14

我设法让Firefox工作,不管物理鼠标在哪里。我是这样初始化的:

            //Firefox initialization
              FirefoxProfile profile = new FirefoxProfile();
            //explicitly enable native events(this is mandatory on Linux system, since they
            //are not enabled by default
              profile.setEnableNativeEvents(true);
              WebDriver driver = new FirefoxDriver(profile);

对于Firefox来说,这对我来说很有用。其他两个还没有。

来源:Selenium WebDriver鼠标操作moveToElement在Firefox Linux上不引发mouseout事件

 类似资料:
  • 问题内容: 当用户单击下拉菜单之外的任何地方时,我想关闭我的登录菜单下拉菜单,我想使用Angular2和Angular2“方法”来完成此操作… 我已经实现了一个解决方案,但是我对此确实没有信心。我认为必须有一种最简单的方法来达到相同的结果,因此,如果您有任何想法…让我们讨论一下:)! 这是我的实现: 下拉组件: 这是我的下拉菜单的组成部分: 每次将此组件设置为可见时,(例如:当用户单击按钮以显示它

  • 问题内容: 我有一个Twitter Bootstrap下拉菜单。正如所有Twitter Bootstrap用户所知,单击(甚至在其中单击)时,关闭菜单。 为避免这种情况,我可以轻松地在下拉菜单上附加一个click事件处理程序,只需添加著名的即可。 但是,这看起来很简单,而且是非常普遍的行为,而且由于(以及)事件处理程序都委派给了对象,因此这些元素(上 一个/下一个 控件,…)上的事件将被“忽略”。

  • 我有一个Twitter引导下拉菜单。正如所有Twitter引导用户都知道的那样,下拉菜单会在点击时关闭(甚至在其中点击)。 为了避免这种情况,我可以很容易地在下拉菜单上附加一个click事件处理程序,并简单地添加著名的。 但是,这看起来很简单,也是一种非常常见的行为,而且由于(以及)事件处理程序被委托给对象,因此这些元素(Prev/Next controls,...)上的事件将被“忽略”。 依赖T

  • 问题内容: 我正在尝试使用docker-compose启动kafka服务,并且应该可以在docker内部和外部进行访问。因此,应该在内部和外部设置合适的广告客户: 问题是,当我尝试从群集外部进行连接时,节点名称不是127.0.0.1,而是内部主机名: 这不是KAFKA_ADVERTISED_LISTENERS和KAFKA_LISTENERS处理这种情况的目的吗?我尝试设置KAFKA_ADVERTI

  • 由于某种原因,我的WordPress生成的菜单在我尝试显示下拉菜单时出现了一些问题。父菜单项变为全宽,然后覆盖其他项。这是悬停状态下的样子: 下面是对代码的修改:https://jsfidle.net/j55scjeq/ 以下是CSS: 下面是HTML: 有人能帮我找到解决办法吗。我只希望子UL显示在一个漂亮的列中,与下面的内容重叠。 我想不通。我不确定这是HTML还是CSS的问题。:/ 非常感谢

  • 我们有一个Oracle Forms 11g应用程序,可以通过浏览器启动。这会留下一个空的浏览器窗口,因为窗体会打开自己的窗口。但是,如果关闭空的浏览器窗口,窗体窗口也将关闭。 我喜欢这样一个事实,即这种安装是服务器安装,我可以很容易地更新它。 但我更喜欢桌面上的图标(shourcut),它只打开表单应用程序而不打开浏览器窗口。我希望通过JavaSDK中的AppletViewer解决这个问题。 但是