右键单击超链接,然后在新窗口中打开链接内容

时间:2016-06-20 12:21:21

标签: java selenium selenium-webdriver selenium-chromedriver

我正在尝试使用selenium和Action类在新窗口中打开href内容,它不起作用。任何帮助表示赞赏。

我使用的是selenium 2.47.1和chrome驱动程序(浏览器版本52)

    WebElement abc = driver.findElement(link); 

    Actions builder = new Actions(driver);
    builder.contextClick(abc).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();

        //builder.contextClick(abc).build().perform();
        //Actions click=builder.moveToElement(abc).contextClick();
        //click = click.sendKeys(Keys.ARROW_DOWN);
        //click.moveByOffset(10,10).click().build().perform();
      //builder.keyDown(Keys.SHIFT).click(abc).keyUp(Keys.SHIFT).build().perform();

3 个答案:

答案 0 :(得分:0)

尝试如下: -

builder.keyDown(Keys.SHIFT).click(abc).keyUp(Keys.SHIFT).build().perform();

希望它能奏效...... :)

答案 1 :(得分:0)

它正在使用Robot类。

这是我的代码。

Actions builder = new Actions(driver);
//builder.contextClick(abc).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();
builder.contextClick(abc).perform();

Thread.sleep(2000);
Robot robo = new Robot();

robo.keyPress(KeyEvent.VK_DOWN);
robo.keyPress(KeyEvent.VK_ENTER);
robo.keyRelease(KeyEvent.VK_DOWN);
robo.keyRelease(KeyEvent.VK_DOWN);
robo.keyRelease(KeyEvent.VK_ENTER);

答案 2 :(得分:0)

我发现你现在正在使用Robot课程。当你想要一次运行大量测试时,我强烈建议不要使用它来限制你。

尝试使用新的window

WebElement abc = driver.findElement(link); 
abc.sendKeys(Keys.SHIFT, Keys.RETURN);

或者您也可以打开一个新的tab而不是全新的window

WebElement abc = driver.findElement(link); 
abc.sendKeys(Keys.CONTROL, Keys.RETURN);

注意Keys.CONTROL应替换为mac上的Keys.COMMAND

相关问题