在选择选项之前,Selenium右键单击向下滚动

时间:2016-06-07 13:54:53

标签: java selenium selenium-chromedriver

我见过这个帖子here,当我尝试使用sendKeys(Keys.ARROW_DOWN)而不是向下移动上下文菜单时,页面会很快向下滚动。我怎么能避免这个?我不知道如何等待上下文菜单出现,但我可以等待元素出现。

这是功能:

    public static void rightClickCopyImageLink(WebElement image){
    Actions copying = new Actions(driver);

    copying.contextClick(image).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).
    sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).
    sendKeys(Keys.RETURN).build().perform();

}

2 个答案:

答案 0 :(得分:0)

尝试与其他操作分开使用 contextClick

copying.contextClick(image).build().perform();
copying.sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).
sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).
sendKeys(Keys.RETURN).build().perform();

如果您愿意,可以添加等待,直到执行 contextClick 操作后出现上下文菜单。

答案 1 :(得分:0)

首先确保图像元素位置正确...

我假设右键单击出现一些子菜单,右键单击单独的动作链。 然后等待元素出现。

一旦出现,只需移动到元素并按下箭头。

骨架代码可能是:

public static void rightClickCopyImageLink(WebElement image){
        Actions rightClick= new Actions(driver);
        rightClick.contextClick(image).build().perform();
        //Wait for submenu to appear waituntil(submenu to be located)
        //Move to located submenu <this is important>

        Actions MoveDownSubmenu = new Actions(driver);
    MoveToRightClickSubmenu.sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).build().perform();


    }