首页 > 解决方案 > (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);
    }
}

标签: javaseleniumselenium-webdriverselenium-iderecorder

解决方案


对于与我有相同问题或在同一主题中需要帮助的任何人,我发现了一个非常有用的编程工具,称为基于 Java 的BRAP (浏览器记录器和播放器),您可以通过此链接查看该工具。https://github.com/nobal/BRAP


推荐阅读