Selenium Webdriver操作无法使用上下文菜单(右键单击)

时间:2017-06-21 17:38:30

标签: selenium selenium-webdriver

我正在尝试使用Selenium Webdriver右键单击页面,然后导航上下文菜单。此脚本应打开右键菜单,然后导航Up 2选项,然后使用Return键选择...

driver.Navigate().GoToUrl("http://www.google.com");
//Google search bar
IWebElement tb = driver.FindElement(By.Id("lst-ib"));
Actions action = new Actions(driver);
//Right Clicks outside of the search bar.
action.MoveToElement(tb, -5, -5).ContextClick().Perform();
action.SendKeys(Keys.Up).SendKeys(Keys.Up).SendKeys(Keys.Return).Perform();

右键单击执行应该(在搜索栏之外),但之后,没有按下向上箭头的证据,并且没有使用Return键选择任何内容。菜单选项应在滚动时突出显示。

我使用的是最新版ChromeDriver 2.30和Chrome 59.0.3071.109

3 个答案:

答案 0 :(得分:0)

如果您的应用程序仅在Windows上运行,则可以使用System.Windows.Forms.SendKey

action.MoveToElement(tb, -5, -5).ContextClick().Perform();
System.Windows.Forms.SendKeys.SendWait("{UP}");
System.Windows.Forms.SendKeys.SendWait("{UP}");
System.Windows.Forms.SendKeys.SendWait("{ENTER}");

答案 1 :(得分:0)

如果是用户设计的上下文菜单。上下文菜单本身将具有定位器

       `WebElement element =driver.findElement(By.xpath("your xpath"));

        Actions action = new Actions(driver);
        action.contextClick(selectedCell).build().perform();
        WebElement copyContext = driver.findElement(By.xpath("xpath of the right context column"));

    if (copyContext .isEnabled())
    {
        copyContext .click();
        log.info("Right context menu COPY CONTENT clicked.");
    }

`

答案 2 :(得分:0)

这个chromedriver bug自2015年以来一直无人值守。 我使用PyAutoGui来控制对话框。

http://pyautogui.readthedocs.org/