Automated tests
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) {
var engine = Engine.newInstance(HARDWARE_ACCELERATED);
var browser = engine.newBrowser();
SwingUtilities.invokeLater(() -> {
var view = BrowserView.newInstance(browser);
var 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) {
var mainFrame = browser.mainFrame()
.orElseThrow(IllegalStateException::new);
var document = mainFrame.document()
.orElseThrow(IllegalStateException::new);
var 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 会为您处理与 JxBrowser API 的所有通信,让您能够更专注于满足测试需求。