• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

yxchun

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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

    }

 

posted on 2021-01-26 19:27  yxchun  阅读(211)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3