gpt4 book ai didi

java - 使用 WebDriver 在基于 CSS 的菜单中选择一个选项

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:55 28 4
gpt4 key购买 nike

我有一个简单的 CSS-based dropdown menu ,我正在尝试单击 Java Selenium (WebDriver) 测试中的菜单项之一。

enter image description here

菜单(<ul> 元素)和项目(<a>)都有 ID 并创建相应的 WebElement对象工作正常。我正在尝试单击其中一个代码如下的项目:

   hoverOver(transfersMenu);
transferLink.click();

hoverOver() , 我试过了 all three answers from this question , 但它们都不起作用。我不断得到:

org.openqa.selenium.ElementNotVisibleException: 
Element is not currently visible and so may not be interacted with
Command duration or timeout: 2.06 seconds

(我也尝试在 transferLink.click() 之前调用 hoverOver() ,希望隐式等待能够让它工作,但没有。)

知道如何使悬停起作用以便可以点击链接吗?

Selenium 版本 2.21.0。我正在使用 Firefox 13.0 在 Linux (Ubuntu) 上运行测试。一位同事刚刚在 Windows 上试用(使用 Firefox 12.0),但对他来说也不起作用。

更新:根据 Slanec 在评论中的提示,以及 these instructions , 我试过 setEnableNativeEvents(true)FirefoxProfile 上.起初这失败了:

org.openqa.selenium.InvalidElementStateException: 
Cannot perform native interaction: Could not load native events component.

...但是在我升级到 Selenium 2.23.1 之后,我不再收到该投诉。

仍然,悬停不起作用(本地事件打开或关闭)。 :-/

最佳答案

我使用以下代码将鼠标悬停在我们的菜单上 1 秒钟,然后单击链接,就像您正在使用的一样:

action = new SeleniumActionHelper(driver);

WebElement currentUser = findElementByLinkText("testing1");
action.mouseHover(currentUser);
Thread.sleep(1000);

请注意,鼠标光标需要保留在浏览器窗口中才能保持悬停。如果鼠标光标在浏览器窗口之外,我会体验到菜单快速闪烁,但它不会保持可见

关于java - 使用 WebDriver 在基于 CSS 的菜单中选择一个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030084/

28 4 0