从selenium的上下文菜单中选择右键单击选项

时间:2017-10-02 19:02:10

标签: selenium selenium-webdriver webdriver

我有一个场景,我需要右键单击一个链接,当出现上下文菜单时,我需要点击“在隐身窗口中打开链接”选项。 当我尝试通过下面的代码片段实现这一点时,我可以看到上下文菜单出现,但不是在新窗口中启动链接,链接在同一窗口中启动。

driver = new ChromeDriver();
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    driver.get("http://www.google.com/");
    Actions action = new Actions(driver);
    WebElement ele = driver.findElement(By.linkText("About"));
action.contextClick(ele).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).perform();

如何实现这一目标的任何建议?

2 个答案:

答案 0 :(得分:0)

可能有一个键盘快捷键用于在隐身窗口中打开一个链接,但我找不到一个,但我找不到很长时间。你可能会有更好的运气。

另一种方法是获取要单击的链接的URL,使用键盘快捷键(CTRL + SHIFT + N)打开隐身窗口,然后导航到URL。这不是理想的,但我不知道另一种方法。

是否有某些原因您无法在隐身窗口中启动脚本并从那里开始?

答案 1 :(得分:0)

此上下文菜单不是html页面的一部分,但这是一个来自Chrome(桌面应用程序)的菜单 Selenium / WebDriver无法自动化桌面应用程序,您可以使用AutoIt或类似软件来执行此操作

但是你需要的只是打开一个新的浏览器会话(隐身窗口只是一个新的,独立的浏览器会话)。
要使用WebDriver模拟此行为,只需打开一个新的Chrome驱动程序:

WebDriver drv1 = new ChromeDriver();

drv1.get("https://www.google.pl");
drv1.findElement(By.name("q")).sendKeys("About");
........
........

// This will open a new browser window with a new, independent browser session
WebDriver drv2 = new ChromeDriver();
drv2.get("https://www.google.pl");
drv2.findElement(By.name("q")).sendKeys("Hello");   
........
........
drv1.do-Something-in-session-1
.....
drv2.do-Something-other-in-session-2
....