java - (JAVA) 如何在 AWT.Frame 中添加 selenium webdriver 窗口以使用动作侦听器
问题描述
我想做一些类似于Selenium IDE的东西,成为自动化解决方案的一部分。这样当我打开 Web 驱动程序浏览器时,它会开始监听我的鼠标和键盘操作,然后操作会在控制台窗口中列出
我试图做的是创建一个名为“DriverListener”的新类,该类继承“Frame”类以便能够使用“MouseListener”,然后它实现“WebDriver”,“MouseListener”接口
我为“webDriver”实现了所有需要的方法,以便能够使用它的功能和“Mouse Listener”,以便能够监听在 webDriver 上完成的操作
但目前,我需要知道如何在负责监听动作的框架内添加 webDriver 浏览器
代码示例:
public class DriverListener extends Frame implements WebDriver, MouseListener
{
private WebDriver lDriver;
private Frame driverFrame;
public DriverListener(WebDriver driver)
{
lDriver = driver;
addMouseListener(this);
}
// WebDriver methods implementation
public void get(String url)
{
lDriver.get(url);
}
.
.
.
public Options manage()
{
return lDriver.manage();
}
// mouseListener methods implementation
public void mouseClicked(MouseEvent e)
{
System.out.println("Mouse Clicked ");
System.out.println("X: "+ e.getX()+ " Y: "+ e.getY());
}
.
.
.
public void mouseReleased(MouseEvent e)
{
System.out.println("Mouse Release ");
System.out.println("X: "+ e.getX()+ " Y: "+ e.getY());
}
//Frame Initialization
private void initializeFrame()
{
driverFrame = new Frame();
int xPosition = lDriver.manage().window().getPosition().getX();
int yPosition = lDriver.manage().window().getPosition().getY();
int width = lDriver.manage().window().getSize().getWidth();
int height = lDriver.manage().window().getSize().getHeight();
Rectangle frameWindow = new Rectangle(xPosition, yPosition, width, height);
driverFrame.setBounds(frameWindow);
driverFrame.setLayout(null);
driverFrame.setVisible(false);
}
}
解决方案
对于与我有相同问题或在同一主题中需要帮助的任何人,我发现了一个非常有用的编程工具,称为基于 Java 的BRAP (浏览器记录器和播放器),您可以通过此链接查看该工具。https://github.com/nobal/BRAP
推荐阅读
- php - 如何解决 Laravel 登录页面出现 Route 404 错误?
- css - 顺风某些自定义颜色在laravel 8欢迎页面中未生效
- sas - 有没有办法将统计信息放在一个相邻的 PROC 表格上,而不是堆叠在一起?
- oracle - SQL Developer 错误:对未初始化集合的引用
- python - 几个相同的字典组件均值
- python - 使用 python 编程新手的数据驱动移动应用程序
- android - 我可以将片段从 adobe xd 导入到 android studio
- flutter - 颤振:mainAxisSize:MainAxisSize.min 不适用于具有滚动方向的 ListView:axis.Horizontal
- mysql - 如何连接两个连接表并将两个不同的值分组
- c++ - 在 C++/WinAPI 中为对话框创建模板