【问题标题】:How to do mouseover function in selenium webdriver using javascript如何使用javascript在selenium webdriver中执行鼠标悬停功能
【发布时间】:2013-10-17 18:48:37
【问题描述】:

我需要使用 JavaScript 执行鼠标悬停功能,我尝试了以下代码没有收到任何错误但鼠标悬停功能没有发生。

      WebElement Mainmenu=_driver.findElement(By.xpath(locatorvalue[0]));
    String strJavaScript = "var element = arguments[0];"
            + "var mouseEventObj = document.createEvent('MouseEvents');"
            + "mouseEventObj.initEvent( 'mouseover', true, true );"
            + "element.dispatchEvent(mouseEventObj);";
     JavascriptExecutor js =  (JavascriptExecutor) _driver;
     js.executeScript(strJavaScript, Mainmenu);

【问题讨论】:

  • 您可以使用动作类来执行鼠标相关的活动。
  • 我已经使用了动作类,它在所有浏览器和所有应用程序中都不起作用,那是你正在使用 javascript
  • String javaScript = "var evObj = document.createEvent('MouseEvents');" + "evObj.initMouseEvent(\"mouseover\",true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);" +“参数[0].dispatchEvent(evObj);”; ((JavascriptExecutor) Driver.driver).executeScript(javaScript, element);这应该有效。试一试。
  • 没有老板它不工作
  • 您能否使用您正在尝试处理的网页,以便我们更好地理解“不工作”的含义?

标签: java frameworks selenium-webdriver


【解决方案1】:
public void click(WebElement a,WebElement b)
{
    try 
     {
         String mouseOverScript = "if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mouseover',true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmouseover');}";
         ((JavascriptExecutor) driver).executeScript(mouseOverScript,a);
         Thread.sleep(1000);
         ((JavascriptExecutor) driver).executeScript(mouseOverScript,b);
         Thread.sleep(1000);
         ((JavascriptExecutor)driver).executeScript("arguments[0].click();",b);


    } catch (Exception e) {
        // TODO: handle exception
    }
}

【讨论】:

    【解决方案2】:
    ((JavascriptExecutor)driver).executeScript("$('element_selector').hover();");
    

    希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多