我见过这个帖子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();
}
答案 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();
}