IE11 actions.moveToElement()不起作用

时间:2016-05-05 14:29:35

标签: java selenium selenium-webdriver internet-explorer-11

在特定的环境中。工作流程如下:

  1. 点击“主菜单” - >下拉列表打开
  2. 从下拉菜单中点击“构建” - >在
  3. 旁边打开另一个子菜单
  4. 点击“修改”,然后点击
  5. 现在,以下给定的selenium代码在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(build)实际上没有执行。因此,单击“主菜单”后,它仅在该位置停止。主菜单一直在那里打开,但没有点击下一个“Build”

    选项

1 个答案:

答案 0 :(得分: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"));