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



我正在尝试使用与动作类的硒在新窗口中打开HREF内容,但它行不通。任何帮助都将不胜感激。

我使用的是硒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();

它正在使用机器人类。

这是我的代码。

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);

尝试如下: -

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

希望它能起作用...:)

我看到您现在正在使用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

最新更新