如何使用Java在Selenium WebDriver中按“ALT + S”

时间:2012-12-05 17:29:27

标签: java selenium-webdriver webdriver

我需要使用Selenium Web Driver为``EditBox发送ALT+S键事件。光标位置已设置为EditBox我正在使用以下代码

driver.switchTo().activeElement().sendKeys(Keys.chord(Keys.ALT+"S"))

但它没有给我想要的结果。它是在编辑框中键入字符'S'。 我尝试了另一个代码但得到了相同的结果。

Actions action =new Actions(driver);
action.keyDown(Keys.ALT).sendKeys(String.valueOf('\u0053')).perform();

先谢谢

我想在这里再添加一件事。该代码在Firefox 12中正常运行,但在IE9中无法正常工作

3 个答案:

答案 0 :(得分:2)

跨浏览器问题很难调查,因为它们特定于特定驱动程序而非WebDriver API。

可能有效的另一种变体。

driver.findElement(By.xpath("your editbox's XPath")).sendKeys(Keys.chord(Keys.ALT, "s"));

作为解决方法,我可能会建议您查看AutoIT(Official site)或Robot(Java Doc

答案 1 :(得分:1)

试试这个。它可能有用,我还没试过

driver.findElement(By.xpath("your editbox's XPath"))
      .sendKeys(Keys.chord(Keys.ALT + Keys.S));

答案 2 :(得分:1)

您可以使用Robot的java类

来实现这一目标
    try{
        Robot robot=new Robot();
        robot.keyPress(KeyEvent.VK_ALT);
        Thread.sleep(1000);
        robot.keyPress(KeyEvent.VK_S);
        robot.keyRelease(KeyEvent.VK_ALT);
        robot.keyRelease(KeyEvent.VK_S);        
    }
    catch(Exception ex){
        System.out.println(ex.getMessage());
    }