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

    }
原文地址:https://www.cnblogs.com/ychun/p/14332017.html