在特定的环境中。工作流程如下:
现在,以下给定的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”
选项答案 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"));