List icon 目录

自动化测试

JxBrowser API 提供了许多功能,可用于编写自动化测试并模拟用户在网页上的活动。

概述

使用 JxBrowser API,您可以:

  • 加载 URL、字符串中的 HTML、本地文件(包括 PDF 文档)。
  • 访问 JavaScript 控制台以读取所有日志消息。
  • 访问已加载网页上的 JavaScript 并执行任何 JavaScript 代码。
  • 访问已加载网页的 DOM。读取和修改 DOM HTML 元素。
  • 访问和修改 cookies。
  • 动态访问和修改 HTTP 请求/响应头。
  • 使用远程调试端口 (--remote-debugging-port=9222) 您可以从 Google Chrome 连接到 JxBrowser,以调试当前加载的网页上的 JavaScript。
  • 处理 JavaScript 对话框,如 alert(警告)、confirmation(确认)、prompt(提示)。
  • 配置每个 Engine 实例的代理设置等。

示例

以下示例演示了如何使用特定凭据以编程方式登录 Facebook:

import static com.teamdev.jxbrowser.engine.RenderingMode.HARDWARE_ACCELERATED;

import com.teamdev.jxbrowser.browser.Browser;
import com.teamdev.jxbrowser.dom.Document;
import com.teamdev.jxbrowser.dom.Element;
import com.teamdev.jxbrowser.dom.FormControlElement;
import com.teamdev.jxbrowser.dom.Node;
import com.teamdev.jxbrowser.engine.Engine;
import com.teamdev.jxbrowser.frame.Frame;
import com.teamdev.jxbrowser.view.swing.BrowserView;
import java.util.Optional;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public final class FacebookLogin {

    public static void main(String[] args) {
        Engine engine = Engine.newInstance(HARDWARE_ACCELERATED);
        Browser browser = engine.newBrowser();

        SwingUtilities.invokeLater(() -> {
            BrowserView view = BrowserView.newInstance(browser);

            JFrame frame = new JFrame();
            frame.add(view);
            frame.setSize(800, 600);
            frame.setVisible(true);

            // 加载 Facebook 登录页面并等待其完全加载
            browser.navigation().loadUrlAndWait(
                    "https://www.facebook.com/login.php");

            // 查找并输入邮箱
            findElementById(browser, "email").ifPresent(emailElement ->
                    ((FormControlElement) emailElement).value("user@gmail.com"));
            // 查找并输入密码
            findElementById(browser, "pass").ifPresent(passElement ->
                    ((FormControlElement) passElement).value("123"));
            // 查找并点击登录按钮
            findElementById(browser, "loginbutton").ifPresent(Node::click);
        });
    }

    private static Optional<Element> findElementById(Browser browser, String id) {
        Frame mainFrame = browser.mainFrame()
                .orElseThrow(IllegalStateException::new);
        Document document = mainFrame.document()
                .orElseThrow(IllegalStateException::new);
        Element documentElement = document.documentElement()
                .orElseThrow(IllegalStateException::new);
        return documentElement.findElementById(id);
    }
}

UI 测试自动化

JxBrowser 兼容不同的 UI 软件测试工具,这些工具可以帮助您为整个应用程序 UI 构建测试套件。

QF-Test

如果您更喜欢包含录制和回放功能的 GUI 解决方案,我们推荐使用专业的 UI 软件测试工具 QF-Test。通过 QF-Test 直观的用户界面,您可以为整个应用程序 UI 构建测试套件,包括任何嵌入的 JxBrowser 实例。

QF-Test Automated Tool

QF-Test 会为您处理与 JxBrowser API 的所有通信,让您能够更专注于满足测试需求。