2016-05-05 93 views
0

在特定的Env。其工作流程如下:IE11 actions.moveToElement()不工作

  1. 单击“主菜单” - >下拉列表中打开
  2. 点击“生成”,从下拉向下>另一个子菜单打开旁边
  3. 点击“编辑”,然后

下面给出的硒代码在Chrome和Firefox上正确执行,但不在IE11中。

//Main Menu opens then--> 
     WebElement build = driver.findElement(By.linkText("Build")); 
     Actions actions = new Actions(driver); 
     actions.moveToElement(build); 
     actions.click(); 
     actions.build().perform(); 
     Thread.sleep(2000); 
     WebElement edit = driver.findElement(By.linkText("Edit")); 
     edit.click(); 

现在的问题是: 在IE11中,moveToElement(构建)不实际执行。因此,点击“主菜单”后,它仅停留在该位置。主菜单保持打开那里,但没有点击下一个选项是“生成”

回答

0

有过这样一个

InternetExplorerOptions options = new InternetExplorerOptions(); 
options.EnablePersistentHover = false; 
IWebDriver driver = new InternetExplorerDriver(options); 

,关键的问题是:

options.EnablePersistentHover = false; 

关于与控股问题在菜单项上显示子菜单:

似乎,你一直在使用这种方法:

WebElement edit = driver.findElement(By.linkText("Edit")); 
edit.click(); 

试一下。例如:

WebElement build = driver.findElement(By.linkText("Build")); 
Thread.sleep(1000); 
build.click(); 
Thread.sleep(1000); 
WebElement edit = driver.findElement(By.linkText("Edit")); 
edit.click(); 

尝试删除Thread :: sleep行后。它就像一个硬编码,你可以使用这种方法:

WebDriverWait wait = new WebDriverWait(driver, timeoutInSeconds); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Edit")); 
+0

如果你不介意马克斯,你能告诉我在哪个硒包'InternetExplorerOptions'在那里?我使用硒2.53并没有得到这一个... – RCode

+0

在新的环境。我认为这些更改如下所示: – RCode

+0

感谢您的支持。你能通过看到顶级的解决方案和它的后果来帮助我多一点... – RCode