我必须点击子菜单链接,将鼠标悬停在主菜单上后显示。
下面的代码完全适用于Firefox:
Actions builder = new Actions(driver);
WebElement we = driver.findElement(By.id("menuMainContracts"));
builder.moveToElement(we).perform();
Thread.sleep(2000);
WebElement sublink = driver.findElement(By.id("mnuSubContracts"));
builder.moveToElement(sublink).click().build().perform();
但是在Internet Explorer中它没有点击子菜单链接,而是尝试点击主菜单本身。
它也没有显示任何错误消息。请帮助摆脱这个问题。
答案 0 :(得分:0)
可能有两次机会。
1.您的应用程序前端设计可能会限制IE支持。可以使用一些奇怪或优雅的框架。
2.如果你能在手册中执行相同的操作,那么你需要有一个正确的方法。请尝试以下方法,
Actions builder = new Actions(driver);
WebElement we = driver.findElement(By.id("menuMainContracts"));
builder.moveToElement(we).build().perform(); // you have missed to build here !
Thread.sleep(2000);
WebElement sublink = driver.findElement(By.id("mnuSubContracts"));
builder.moveToElement(sublink).click().build().perform();
或
Actions builder = new Actions(driver);
WebElement we = driver.findElement(By.id("menuMainContracts"));
WebElement sublink = driver.findElement(By.id("mnuSubContracts"));
builder.moveToElement(we).click().moveToElement(sublink).click().build().perform();
我还有其他一些建议,尝试在这些提前操作的中间调用Excepted条件。(在您的情况下,等待子菜单出现)。但我还没试过。这在技术上可能是致命的。尝试让社区公布结果。
答案 1 :(得分:0)
您可以使用此代码以编程方式将鼠标移出窗口区域。
final int MAX_Y = 4;
final int MAX_X = 4 ;
Robot robot = null;
try
{
robot = new Robot();
} catch (AWTException e)
{
}
Random random = new Random();
robot.mouseMove(random.nextInt(MAX_X), random.nextInt(MAX_Y));