如何使用 javascript 在 selenium webdriver 中执行鼠标悬停功能
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/19288492/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 15:43:14 来源:igfitidea点击:
How to do mouseover function in selenium webdriver using javascript
提问by Raghu
I need to do mouseover function using JavaScript, I have tried the below code am not getting any error but mouseover function not happening.
我需要使用 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);
回答by Amith
((JavascriptExecutor)driver).executeScript("$('element_selector').hover();");
Hope this will help
希望这会有所帮助
回答by Mukul Bansal
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
}
}