c# - 将鼠标悬停在元素上以显示并单击隐藏元素

标签 c# selenium-webdriver

在 C# 中使用 Selenium Webdriver,我需要将鼠标悬停在一个元素上,然后该元素会显示隐藏元素的菜单,然后我需要单击之前隐藏的元素。我无法单击显示菜单的元素,因为这将重定向到另一个页面。

行动:

  1. 将鼠标悬停在“我的帐户”菜单项上可显示隐藏元素(不得点击此元素)
  2. 找到并点击第 1 步中显示的“更新详细信息”元素。

但是,我正在使用以下代码;它引发“更新详细信息”元素的元素未找到异常。

Actions action = new Actions(driver);
IWebElement MegaMenu = driver.FindElement(By.CssSelector("#tab-overview"));
action.MoveToElement(MegaMenu).Build().Perform();
action.MoveToElement(driver.FindElement(By.LinkText("Update my details"))).Click().Build().Perform();

最佳答案

您只需要操作即可进行悬停。将鼠标悬停后,您应该能够单击该元素。我在那里等待,以确保在您尝试单击该元素之前,页面有一秒钟的时间让该元素可见。您可能不需要它。

Actions action = new Actions(driver);
IWebElement MegaMenu = driver.FindElement(By.CssSelector("#tab-overview"));
action.MoveToElement(MegaMenu).Build().Perform();
WebDriverWait Wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
IWebElement updateLink = Wait.Until(ExpectedConditions.ElementToBeClickable(By.LinkText("Update my details")));
updateLink.Click();

关于c# - 将鼠标悬停在元素上以显示并单击隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32650491/

相关文章:

c# - 从图表中仅获取环形节点

c# - 可以自动处理 ThreadStatic IDisposable 吗?

c# - 使用 .net 使用 Sabre soap 服务

java - 如何使用 Selenium WebDriver 处理 Windows 文件上传?

java - 使用 selenium 将 HTML javascript 解析为 JAVA

c# - 使用 Selenium 使用 WindowHandles 跟踪和遍历选项卡和窗口的最佳方法

php - 是否可以在每次 PHPUnit 测试失败后运行一个函数?

javascript - 如何关闭 CSS 以更快地执行自动化测试?

c# - RDLC报告中我的日期时间数据字段中的错误

c# - 在 WPF 文本框上调用 Select() 不执行任何操作