我正在尝试使用下面的代码点击鼠标悬停链接。 webdriver(v.2.35)不会抛出任何错误,但不会单击该元素。有人可以帮我弄清楚出了什么问题吗?
String URL = "http://www.kgisliim.ac.in/"
String menu ="Alumni>Register"
driver.get(URL);
String[] menuItems = menu.split(">");
Actions actions = new Actions(driver);
WebElement tempElem;
for (int i =0 ; i< menuItems.length ; i++) {
tempElem = driver.findElement(By.linkText(menuItems[i].trim()));
actions.moveToElement(tempElem).build().perform();
}
actions.click();
actions.perform();
注意:上面的代码在以下场景中正常工作
String URL = "http://www.flipkart.com/"
String menu ="Clothing>Jeans"
答案 0 :(得分:1)
你可以试试这个:
WebDriver driver=new FirefoxDriver();
driver.get("http://www.kgisliim.ac.in/");
Actions actions=new Actions(driver);
WebElement menuHoverLink=driver.findElement(By.linkText("Alumni"));
actions.moveToElement(menuHoverLink);
//driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
WebElement subLink=driver.findElement(By.cssSelector(".options>ul>li>a"));
actions.moveToElement(subLink);
actions.click();
actions.perform();
答案 1 :(得分:0)
由于http://www.kgisliim.ac.in/上的菜单需要一秒钟才能滑出,您可以添加一个WebDriverWait以确保子菜单有时间变为可见,然后再将光标移动到该子菜单。尝试使用以下行替换for循环中的第一行。这将在子菜单中等待最多5秒(但会在该时间内尽快返回WebElement。)
tempElem = new WebDriverWait(driver, 5).until(ExpectedConditions
.elementToBeClickable(By.linkText(menuItems[i].trim())));
答案 2 :(得分:0)
我最近遇到了phantomJS和ghostdriver的类似问题。就我而言,问题是窗口大小 - HTML元素在可见区域之外,我的鼠标移动没有效果(默认大小为400x300,相当小)。
您可以使用
检查窗口大小driver.manage().window().getSize()
你可以用
改变它driver.manage().window().setSize(new Dimension(width, height));