JavaScript函數,它在運行時加載菜單。在鼠標懸停時,LoadMenu函數加載菜單項,我需要在MouseClick()事件中與它分離的位置。如何點擊使用硒在鼠標懸停上填充的Windows菜單
如何使用Selenium Webdriver執行此操作?
function LoadMenus(){
window.menu_1234567 = new Menu("root",150,20,"Arial, Helvetica, sans-serif",12,"#336699","#333333","#ffffff","#E2E6CD","left","middle",10,0,200,-5,7,true,false,true,0,true,true);
menu_1234567.addMenuItem("Partner Management","location='/dash-1.0/partnerconfiguration/partnerAdministration.action'");
menu_12345678_0.addMenuItem("User Management","location='/dash-1.0/systemadminconfiguration/userSysAdmin.action'");
menu_1234567.addMenuItem("Audit Report","location='/dash-1.0/configuration/auditReport.action'");
menu_1234567.addMenuItem("Change Password","location='/dash-1.0/changecurrentpassword.action'");
menu_1234567.addMenuItem("Sign Out","location='/dash-1.0/logout.action'");
menu_1234567.hideOnMouseOut=true;
menu_1234567.writeMenus();
};
LoadMenus();
下面是HTML代碼:
<div id="menuItem0" class="menuItem" style="position: absolute; left: 0px; top: 0px; font-family: Arial,Helvetica,sans-serif; font-size: 12px; height: 20px; background-color: rgb(255, 255, 255); visibility: inherit;">
<div id="menuItemText0" class="menuItemText" style="position:absolute;left:11px;top:3px;color:#336699;">Partner Management </div>
<div id="menuItemHilite0" class="menuItemHilite" style="position: absolute; left: 11px; top: 3px; color: rgb(51, 51, 51); visibility: hidden;">Partner Management </div>
</div>
我通過硒的webdriver但element.click元素 「menuItemText2」()方法沒有任何反應。我嘗試過下面提到的所有場景,但無法通過硒web驅動程序正確點擊菜單項。
// case 1 tried using mouseMove
Point p=element.getLocation();
System.out.println("x="+p.getX());
System.out.println("y="+p.getY());
Robot robot = new Robot();
robot.mouseMove(p.getX(),p.getY());
// case 2 tried using moveByOffset
Actions builder = new Actions(driver);
builder.moveToElement(element).build().perform();
builder.moveByOffset(p.x, p.y).perform();
// case 3 tried using Action builder
Actions hover = builder.moveToElement(element, p.x, p.y);
hoverOverRegistrar.perform();
hover.perform();
hover.build();
hover.click();
//case 4 tried by executing javascript and search element by name
element= driver.findElement(By.name("Sign Out "));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("$('div#menuItemText2').mouseover();");
js.executeScript("$('div#menuItem3.menuItem').click();");
// case 5 tried by executing javascript and search element by id
element = driver.findElement(By.id("menuItem4"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("$('div#menuItem4.menuItem').hover();");
element.click();
請解釋如何點擊這些菜單項,填充鼠標懸停和單擊事件不與web元素協調。
喜沙善耆那教的,我也面臨這個問題。如果您發現解決方案的意思,請在此處發佈。這對其他人會有幫助。 – Manigandan