【问题标题】:javascript for mouse hover in c# seleniumjavascript 在 c# selenium 中用于鼠标悬停
【发布时间】:2017-11-03 11:18:28
【问题描述】:

我想将鼠标悬停在具有许多子菜单的菜单上。在我研究的网站中,他们建议使用以下操作。但是通过隐藏必须悬停的实际元素,操作会悬停在其他菜单上。

Actions action = new Actions(Driver);
Actions hoverclick = action.MoveToElement(HomePageMaps.MegaMenuDevelopAndGrowAsManager());
hoverclick.Build().Perform();

请推荐一个可用于 selenium C# [Visual Studio IDE] 的鼠标悬停 java 脚本。

我也试过下面的java脚本来悬停,但它没有悬停,而是将焦点放在元素上。

IJavaScriptExecutor exe = (IJavaScriptExecutor)Driver;
exe.ExecuteScript("arguments[0].fireEvent('onmouseover');", xpath of the element to be hovered());

【问题讨论】:

  • 以下链接对你有帮助enter link description here
  • 你有我们可以测试的网址吗?
  • @Tinkle 你能考虑在你的作品中分享相关的 HTML DOM 吗?谢谢
  • 没有人 URL 和 DOM 是保密的 :(

标签: javascript c# selenium


【解决方案1】:

尝试使用 JQuery,

IJavaScriptExecutor exe = (IJavaScriptExecutor)Driver;
exe.ExecuteScript($("Your Element Selector").hover(function(){$(this).css("background-color", "white"); },); 

您的元素选择器 - 提供要悬停的 Web 元素。

【讨论】:

    【解决方案2】:

    您可以尝试使用移动到元素动作,这将模拟动作。

    WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
    var element = wait.Until(ExpectedConditions.ElementIsVisible(By.Id(elementId)));
    
    Actions action  = new Actions(driver);
    action.MoveToElement(element).Perform();
    

    【讨论】:

    • 感谢您对我的查询的回复。我尝试了上面的代码,但它不起作用。正如我提到的,如果我使用操作,它会悬停其他 Web 元素并隐藏必须悬停的元素。
    猜你喜欢
    • 1970-01-01
    • 2017-10-14
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2017-10-02
    相关资源
    最近更新 更多