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 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();
}
}
java控制夜神访问浏览器 相关文章
Java 基础(方法参数的值传递机制)
方法参数的值传递机制 方法,必须由其所在类或对象调用才有意义。若方法含有参数: 形参:方法声明时的参数 实参:方法调用时实际传给形参的参数值 Java 里方法的参数传递方式只有一种:值传递。即将实际参数值的副本(复制品)传入方法内,而实参本身不受影响
java之 FilterListener
0x01、Filter 什么是filter ?Filter:一个实现了特殊接口(Filter)的Java类. 实现对请求资源(jsp,servlet,html,)的过滤的功能. ?过滤器是一个运行在服务器的程序, 优先于请求资源(Servlet或者jsp,html) 之前执行. 过滤器是javaweb技术中 最为实用 的技术之一.
Java并发包源码学习系列:阻塞队列BlockingQueue及实现原理分析
目录 本篇要点 什么是阻塞队列 阻塞队列提供的方法 阻塞队列的七种实现 TransferQueue和BlockingQueue的区别 1、ArrayBlockingQueue 2、LinkedBlockingQueue 3、PriorityBlockingQueue 4、DelayQueue 5、SynchronousQueue 6、LinkedTransferQueue 7、LinkedB
JavaWeb三大框架基础架构——CRUD的基础功能搭建
@ 目录 介绍 注意 applicationContext.xml mybatis-config.xml web.xml 结束语 介绍 项目前端采用了bootstrap,后端是ssm三大框架 注意 这是项目的基础架构 要注意的几个配置:applicationContext.xml,mybatis.xml,web.xml,pom.xml 其中的pojo代码使用了l
Maven命令下载源码和javadocs
1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的达到这个目的: mvn dependency:sourcesmvn dependency:resolve -Dclassifier=javadoc
String中的享元模式
Java中将String类定义为由final修饰的(不可改变的),JVM中字符串一般被保存在字符串常量池中,Java会确保一个字符串在常量池中只有一个“复制”,这个字符串常量池在JDK 6.0以前是位于常量池中的,位于永久代;而在JDK 7.0中,JVM将其从永久代拿出来放置于
java之 JSP el jstl
0x01、JSP入门 jsp执行流程: 第一次访问的xxx.jsp时候,服务器收到请求,JspServlet会去查找对应的jsp文件 找到之后,服务器会将这个jsp文件转换成java文件(Servlet) 服务器编译java文件,生成class文件 服务器运行class文件,生成动态的内容 服务器收到内容之后
Java 给Word不同页面设置不同背景
Word文档中,可直接通过【设计】-【页面颜色】页面颜色,通过Java代码可参考如下设置方法: 1. 设置单一颜色背景 doc.getBackground().setType(BackgroundType.Color);doc.getBackground().setColor(Color.PINK); 2. 设置渐变背景 doc.getBackground().setTy
《Java小游戏》:球球大作战
此文转载自:https://blog.csdn.net/pandas_dream/article/details/113086334 目录 游戏规则 主要实现方法 游戏流程展示 1. 开始游戏页面 2. 加载中页面 3. 选择地图页面 4. 自定义昵称页面 5. 运行页面 死亡页面 发展方向 (前面都不感兴趣,快进到)原码 最后
win32 - 将控制台输出重定向到txt文本上
这里需要两个app. parent.cpp #include Windows.h#include stdio.hint main(){ SECURITY_ATTRIBUTES se = {}; se.nLength = sizeof(SECURITY_ATTRIBUTES); se.bInheritHandle = true; se.lpSecurityDescriptor = NULL; HANDLE hFile = CreateFileW(L"test.tx