2014-03-30 148 views
0

我想在使用相同WebDriver實例的新窗口中打開鏈接。這是我的代碼到目前爲止。如何使用Selenium WebDriver單擊鏈接

import org.openqa.selenium.By; 
import org.openqa.selenium.Keys; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class FirstTest { 

    public void driverIsTheKing() { 

     WebDriver driver = new FirefoxDriver(); 

     driver.get("http://www.google.com"); 

     driver.findElement(By.linkText("Gmail")).sendKeys(Keys.ALT,Keys.ENTER); 
    } 
} 

這是行不通的。我需要模擬點擊鏈接,同時按住Alt或Option鍵。我在OS X上運行這個腳本。

+0

的解決方案是使用Keys.SHIFT代替Keys.ALT –

回答

0
import org.openqa.selenium.By; 
import org.openqa.selenium.Keys; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class FirstTest { 

    public void driverIsTheKing() { 

    WebDriver driver = new FirefoxDriver(); 

    driver.get("http://www.google.com"); 

    driver.findElement(By.linkText("Gmail")).sendKeys(Keys.SHIFT,Keys.ENTER); 
    } 
} 
+0

此外,請注意,此代碼適用於Selenium Server 2.41.0,但不適用於2.40.0 –

0

在Selenium Webdriver中使用Actions Builder。示例如下:

WebDriver driver = new FirefoxDriver(); 
driver.get("http://www.google.com"); 
WebElement link = driver.findElement(By.linkText("Gmail")); 
Actions builder = new Actions(driver); 
Action altClick = builder 
      .keyDown(Keys.ALT) 
      .click(link) 
      .keyUp(Keys.ALT) 
      .build(); 

altClick.perform(); 
+0

試過,沒有對硒2.4.0工作,火狐28,OS X.難道是爲你工作? –

+0

您是否嘗試使用最新的webdriver綁定,即2.41.0? –

+0

是的,我只是做了,仍然沒有運氣。光標從鼠標指針變爲手形指針,但新窗口未打開。它適合你嗎? –

1

您已接近答案。用Keys.CONTROL替換Keys.ALT。

+0

那麼實際的答案是使用Keys.SHIFT,但感謝你提醒我嘗試其他組合。 –

相關問題