1. 程式人生 > >WebDriver 如何獲取頁面中的隱藏元素(懸浮選單)

WebDriver 如何獲取頁面中的隱藏元素(懸浮選單)

在自動化測試過程中,由於javascript的使用,我們常常需要點選一些滑鼠經過顯示的選單等元素,這時需要觸發該元素的滑鼠經過事件。使用WebDriver有以下兩種實現。

比如,要點選Add New選單。但要先將滑鼠指向Posts才會顯示該選單。

1. 使用Antions

[java] view plaincopyprint?
  1. publicvoid moveToElement(WebDriver driver, By locator) {     
  2.     Actions builder = new Actions(driver);     
  3.     builder.moveToElement(driver.findElement(locator)).perform();     
  4. }   

2. 使用SendKey

[java] view plaincopyprint?
  1. publicvoid moveToElement(WebDriver driver, By locator) {     
  2.         driver.findElement(locator).sendKeys(Keys.DOWN);     
  3. }    

具體例項:

[java] view plaincopyprint?
  1. publicvoid AccessSite() throws InterruptedException{  
  2.     System.setProperty("webdriver.chrome.driver"
    "E:\\WebDriver\\chromedriver.exe");  
  3.     System.setProperty("webdriver.chrome.bin""C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe");  
  4.     WebDriver driver = new ChromeDriver();  
  5.     driver.get("http://demo.opensourcecms.com/wordpress/wp-login.php");  
  6.     Thread.sleep(1000);  
  7.     driver.findElement(By.id("user_login"
    )).sendKeys("admin");  
  8.     driver.findElement(By.id("user_pass")).sendKeys("demo123");  
  9.     driver.findElement(By.id("wp-submit")).click();  
  10.     Thread.sleep(2000);  
  11.     Actions builder = new Actions(driver);  
  12.     builder.moveToElement(driver.findElement(By.xpath("//li[@id='menu-posts']/a"))).perform();  
  13.     Thread.sleep(2000);  
  14.     driver.findElement(By.linkText("Add New")).click();  
  15. }