无法使用selenium Webdriver使用keyDown和keyUp事件

时间:2014-11-30 05:45:09

标签: selenium-webdriver

我想做以下事情,有人可以帮助我做错了吗。

1)打开代码中提到的网站
2)使用webdriver中的keydown和keyup事件输入文本“WELcoME”(大写和小写字母的混合)。


公共类KeysUpandDown {

public static void main(String[] args) {
    WebDriver driver=new FirefoxDriver();
    driver.get("http://fleet.idrivesafely.com");
    driver.manage().window().maximize();
    driver.findElement(By.linkText("Student Login")).click();
    WebElement loc=driver.findElement(By.className("input1"));
    Actions a= new Actions(driver);
    a.moveToElement(loc)
    .keyDown(Keys.SHIFT)
    .sendKeys("wel")
    .keyUp(Keys.SHIFT)
    .sendKeys("co")
    .keyDown(Keys.SHIFT)
    .sendKeys("me");
    a.perform();

}

}

1 个答案:

答案 0 :(得分:0)

您的代码需要进行2次小更改。

改变1:
               WebElement loc=driver.findElement(By.className("input1"));

指向页面上的三个Web元素,而不是使用

WebElement loc=driver.findElement(By.xpath("//input[@class='input1' and @name='pin_no']"));

更改2:它是一个文本字段,因此不是

a.moveToElement(loc)

使用

 a.click(loc)

所以你的代码应该如下:

    public static void main(String[] args) {
        WebDriver driver=new FirefoxDriver();
        driver.get("http://fleet.idrivesafely.com");
        driver.manage().window().maximize();
        driver.findElement(By.linkText("Student Login")).click();
        WebElement loc=driver.findElement(By.xpath("//input[@class='input1' and @name='pin_no']"));
        Actions a= new Actions(driver);
        a.click(loc).keyDown(Keys.SHIFT).sendKeys("wel").keyUp(Keys.SHIFT).sendKeys("co").keyDown(Keys.SHIFT).sendKeys("me").perform();