zoukankan      html  css  js  c++  java
  • 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();
          }
    
        }
  • 相关阅读:
    SQL Server 查看正在运行的事务信息的 2 种方法。
    SQL Server 查看正在运行的事务信息的 2 种方法。
    js防抖和限流
    js防抖和限流
    CSS cursor 属性
    CSS cursor 属性
    JS-中使用Math.round(x)保留1位小数点
    I/O系列教材 (一)- Java 的File类,以及常用方法
    异常处理系列教材 (五)- Java 自定义异常
    异常处理系列教材 (四)- java Throwable接口
  • 原文地址:https://www.cnblogs.com/ychun/p/14332017.html
Copyright © 2011-2022 走看看