【机器人系列】支付宝支付控件输入框模拟输入

本文介绍了在自动化测试中遇到特殊浏览器输入控件,如支付宝密码控件时,如何利用JNA的Native代理调用Windows系统函数进行模拟输入。通过找到控件窗口句柄并循环发送字符实现输入。详细步骤和测试代码提供。
摘要由CSDN通过智能技术生成

企业中做自动化测试,会用到Selenium,它确实是一个强大,免费,而便捷的自动化测试框架。但有时候我们会遇到一些特别的浏览器输入控件,他们不是正常的Html input元素,因此Selenium无法获取到。这时候我们需要用本地化操作进行模拟。当然,这种技术也不仅可以用来做测试,还可以....你懂的。切入正题。

问题/任务描述: 实现向支付宝密码控件自动输入密码

解决方案:使用JNA提供的Native代理,调用Windows系统函数,通过SendMessage函数发送字符,实现输入。

具体步骤:(1)找到控件窗口的句柄(可以使用Spy++),总结如何找到的,这是一个自定义的算法.因为支付宝的控件类名是随机的乱码.

  (2)循环发送密码的每一个字符。

上代码:

package org.tbworks.auto_alipay;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.platform.win32.WinUser.WNDENUMPROC;
import com.sun.jna.win32.W32APIOptions;

/**
 * @author tangb Note: className means the class name of window (frame), you can
 *         get it by spy++
 */
public class AlipayEditInputTyper {

	// load the user32.dll
	final protected static User324J user32 = (User324J) Native.loadLibrary(
			"user32", User324J.class, W32APIOptions.DEFAULT_O
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值