【问题标题】:How to press a keyboard key without a physical keyboard in selenium如何在没有物理键盘的情况下按下 selenium 中的键盘键
【发布时间】:2018-01-02 09:20:41
【问题描述】:

我正在尝试构建一个将安装 chrome 扩展的自动化脚本。

在我的本地系统 (windows 10) 上,在使用带有 java 的 Robot 类时一切正常,因为我有一个物理键盘连接到我的计算机。

问题是 - 当我尝试在虚拟机(Amazon EC2、Windows 服务器)上运行此自动化时,Robot 类无法正常工作,因为它没有检测到键盘的物理连接。

有没有其他方法可以在没有连接键盘的情况下模拟键盘敲击?

仅供参考,我必须使用键盘,因为 google 安装框不是页面的一部分,而且 selenium 无法识别它。

我尝试了 sendKeys 功能,但它不起作用,因为它只会影响网页本身,不会弹出页面之外

【问题讨论】:

  • selenium 正在测试网页。它根据他们的 id 来“点击”按钮。它怎么能点击键盘?
  • 您能否向我们展示您的代码试验并更新您遇到的问题?
  • @Stultuske 使用 Robot 框架是可能的,这就是我所说的。
  • @DebanjanB 代码没有那么重要……想象一下一个新的 Robot 实例,它尝试点击“左箭头”,然后点击“Enter”。在我的本地电脑上效果很好,但在虚拟机上却不行。

标签: java selenium-webdriver google-chrome-extension automated-tests


【解决方案1】:

我相信您可以使用 java 机器人功能来模拟键盘交互。

例子:

package org.kodejava.example.awt;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;

public class CreatingKeyboardEvent {
    public static void main(String[] args) {
        try {
            Robot robot = new Robot();

            // Create a three seconds delay.
            robot.delay(3000);

            // Generating key press event for writing the QWERTY letters
            robot.keyPress(KeyEvent.VK_Q);
            robot.keyPress(KeyEvent.VK_W);
            robot.keyPress(KeyEvent.VK_E);
            robot.keyPress(KeyEvent.VK_R);
            robot.keyPress(KeyEvent.VK_T);
            robot.keyPress(KeyEvent.VK_Y);
        } catch (AWTException e) {
            e.printStackTrace();
        }
    }
}

【讨论】:

    【解决方案2】:

    我认为你不能用 Selenium 做到这一点,因为它是用来测试网页的,而不是自动化人机交互。

    如果您想自动化这样的复杂方案,您可以尝试更完整的解决方案,例如 UiPath : https://www.uipath.com/

    这是一个旨在实现自动化的解决方案,因此它将为您提供更多工具来实现您的目标。它有一个免费的社区版和一个活跃的论坛,所以你应该能够快速处理它!

    【讨论】:

    • 我正在寻找类似脚本的东西...我不想在虚拟机上安装任何东西...这个软件需要安装在计算机上
    • 确实,您需要在虚拟机上安装一些东西,尽管您可以限制影响,但您至少需要浏览器插件和机器人软件...抱歉没有提供帮助
    猜你喜欢
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2017-10-21
    • 2011-10-18
    • 1970-01-01
    相关资源
    最近更新 更多