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(); } }