1

我正在尝试使用下面的代码单击鼠标悬停链接。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"
4

3 回答 3

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();
于 2013-09-26T17:46:03.737 回答
0

我最近偶然发现了一个类似的问题,使用phantomJSghostdriver。就我而言,问题在于窗口大小 - HTML 元素位于可见区域之外,并且我的鼠标移动没有任何效果(默认大小为 400x300,相当小)。

您可以检查窗口大小

driver.manage().window().getSize()

你可以改变它

driver.manage().window().setSize(new Dimension(width, height));
于 2014-10-10T12:51:30.153 回答
0

由于http://www.kgisliim.ac.in/上的菜单需要一秒钟才能滑出,您可以添加一个 WebDriverWait 以确保子菜单在将光标移动到它之前有时间变得可见。尝试用以下行替换 for 循环中的第一行。这将为子菜单等待最多 5 秒(但会在该时间内尽快返回 WebElement)。

tempElem = new WebDriverWait(driver, 5).until(ExpectedConditions
        .elementToBeClickable(By.linkText(menuItems[i].trim())));
于 2013-09-27T02:02:58.010 回答