java控制夜神访问浏览器
1、环境搭建java+eclipse+appium
参考文档:https://www.jianshu.com/p/1b959e0baae2
2、安装夜神,解决adb无法控制夜神问题
参考文档:https://i.cnblogs.com/posts/edit;postId=14331628
3、利用appium查找页面元素
--》打开浏览器
--》查看设备名称
adb devices
--》 查看系统版本
adb shell getprop ro.build.version.release
--》 查看 App 名称和 App 启动项名称
adb shell dumpsys window w | findstr \/ | findstr name=
{ "deviceName": "127.0.0.1:62001", "platformName": "Android", "platformVersion": "5.1.1", "appPackage": "com.android.browser", "appActivity": "com.android.browser.BrowserActivity", "noReset": true }
4、编写代码控制
public class TestNox01 { //AppiumDriver含义,建立于Appium的连接 AppiumDriver driver; @Test public void f() { } @SuppressWarnings("rawtypes") @BeforeClass public void beforeClass() { //创建DesiredCapabilities对象 //指定测试设备信息 DesiredCapabilities devices = new DesiredCapabilities(); //使用的移动设备或模拟器的种类,如 iPhone Simulator,iPad Simulator,Android Emulator,Galaxy S4 等 devices.setCapability("deviceName", "127.0.0.1:62001"); // 指定使用哪个移动操作系统平台,如 iOS,Android 或 FirefoxOS devices.setCapability("platformName","Android"); //不重新安装软件 devices.setCapability("noReset","true"); //指定移动操作系统版本 devices.setCapability("platformVersion","5.1.1"); // 指定 app 程序包名,即被测程序名 devices.setCapability("appPackage","com.android.browser"); devices.setCapability("appActivity","com.android.browser.BrowserActivity"); //每次启动时覆盖session,否则第二次后运行会报错不能新建session devices.setCapability("sessionOverride", true); //设置可以输入中文 devices.setCapability("unicodeKeyboard", true); devices.setCapability("resetKeyboard", true); //启动 App try { driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),devices); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Test public void test01() throws InterruptedException { driver.get("http://www.baidu.com"); //查看app类型 Set<String> context = driver.getContextHandles(); System.out.println(context); //切换框架 driver.context("WEBVIEW_com.android.browser"); //点击搜索框 driver.findElementById("index-kw").click(); //输入搜所内容 driver.findElementById("index-kw").sendKeys("手机测试"); //点击回车 driver.findElementById("index_su").click(); Thread.sleep(2000); } @AfterClass public void afterClass() { driver.quit(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~