【问题标题】:Select an option from context menu using selenium, sendKeys doesn't work使用 selenium 从上下文菜单中选择一个选项,sendKeys 不起作用
【发布时间】:2018-04-23 12:21:06
【问题描述】:

我正在尝试从上下文菜单中选择一个选项,但 sendKeys(Keys.ARROW_DOWN) 不起作用。它所做的只是上下移动页面的滚动(即使上下文菜单仍然打开)

Actions action = new Actions(driver);
action.contextClick(element).build().perform();
action.sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.Enter).build().perform();

这里的 sendKeys 方法只是在不考虑打开的上下文菜单的情况下上下移动页面。(我也尝试切换到警报) 还有其他方法可以从上下文菜单中选择一个选项吗?

【问题讨论】:

标签: java selenium contextmenu


【解决方案1】:

试试这个代码:

action.contextClick(element).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.Enter).build().perform();

【讨论】:

  • 感谢您的建议,试过了,上下文菜单确实打开了,但是 sendKeys(Keys.ARROW_DOWN) 将页面的滚动向下移动,好像上下文菜单没有打开一样。
  • 然后在上下文单击之后,您必须通过任何定位器找到元素(无论您想选择哪个)并单击它!请使用右键单击后获得的选项的 html 更新您的问题!
  • 此上下文菜单不是 html 页面的一部分,它是来自 Chrome(桌面应用程序)的菜单,因此上下文菜单选项不会出现在 html 中。在打开上下文菜单后手动按向上或向下箭头,然后按键盘上的 Enter 可从上下文菜单中选择一个选项。但是当我运行我编写的代码时,它只会上下滚动页面(焦点仍然在页面上,而不是上下文菜单本身)。
  • 请分享 1. 元素你右键 2. 有哪些可用选项 3. 你想要的输出
【解决方案2】:

要导航上下文菜单,您必须按 shift 键和箭头键。像这样:

actionChains.context_click(element).send_keys(Keys.SHIFT, Keys.ARROW_DOWN, 'H')

我遇到的麻烦是如何向下导航多个菜单项。我的总是停在第二个项目

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-17
    • 2011-02-18
    • 1970-01-01
    • 2021-12-08
    • 2019-02-04
    • 1970-01-01
    • 2015-08-23
    • 2020-05-14
    相关资源
    最近更新 更多