2013-10-16 102 views
0

我想通過使用硒web驅動程序在以下菜單中點擊'CookBooks'。它出現在鼠標懸停,它是一個JavaScript菜單。請幫幫我 。以下是該菜單的html視圖。通過selenium webDriver訪問javascript菜單

<li> 
<a href="#"> 
<span>Set Up</span> 
</a> 
    <ul> 
    <li> 
     <a onclick="validateLevelOfOwnership('MaintainCookbook.html');return false;" href="javascript:void(0)"> 
     <span>Cookbooks</span> 
     </a> 
    </li> 
    <li> 
     <a onclick="validateLevelOfOwnership('MaintainCategories.html');return false;" href="javascript:void(0)"> 
     <span>Categories</span> 
     </a> 
    </li> 
    <li> 
     <a onclick="validateLevelOfOwnership('MaintainDistributors.html');return false;" href="javascript:void(0)"> 
     <span>Distributors</span> 
     </a> 
    </li> 
    <li> 
     <a href="/recipeManager/distributorItem/listItems.action"> 
     <span>Distributor Items</span> 
     </a> 
    </li> 
     <li> 
     <a onclick="validateLevelOfOwnership('MaintainPreparationMethodsAndConversions.html');return false;" href="javascript:void(0)"> 
     <span>Prep Methods & Conversion Ratios</span> 
     </a> 
     </li> 
    </ul> 
</li> 

回答

1

你可以試試下面的代碼,

driver.findElement(By.linkText("Cookbooks")).click(); 

這可以用來點擊代表聯繫文本..

0

你可以在這裏使用的「操作」類模仿用戶手勢。

以下是我編寫的用於執行菜單單擊的代碼,其中我們需要首先將鼠標懸停在根菜單上,然後單擊子菜單。爲了說明的目的,我採取了網站:http://www.milonic.com/menusample15.php

public static void main(String[] args) throws InterruptedException { 

    WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.milonic.com/menusample15.php"); 

    //element refering to 'Milonic' menu 
    WebElement rootMenu = driver.findElement(By.linkText("Milonic")); 

    Actions action = new Actions(driver); 

    //move to 'Milonic' first 
    action.moveToElement(rootMenu).perform(); 
    //wait for the sub-menu to come up 
    Thread.sleep(1000); 
    //inside sub-menu click on 'FAQ' 
    action.moveToElement(driver.findElement(By.linkText("FAQ"))).click().perform(); 
} 
相關問題