1

以下のコードを使用してマウス ホバー リンクをクリックしようとしています。Web ドライバー (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

http://www.kgisliim.ac.in/のメニューはスライドアウトするのに 1 秒かかるため、WebDriverWait を追加して、カーソルをサブメニューに移動する前にサブメニューが表示されるようにすることができます。for ループの最初の行を次の行に置き換えてみてください。これにより、サブメニューを最大 5 秒間待機します (ただし、その時間内に WebElement をできるだけ速く返します)。

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