精华内容
下载资源
问答
  • 原理:获取到当前屏幕的尺寸,在要操作的元素的屏幕位置构造像素点位,进而执行点击或滑动操作。 注:坐标定位时采用相对定位方式,可适配其他分辨率。 1、坐标点击屏幕元素 <!-- ...

    背景:App某些页面元素无法通过Appium或其他方式抓取到,无法通过传统方式定位到元素。

    原理:获取到当前屏幕的尺寸,在要操作的元素的屏幕位置构造像素点位,进而执行点击或滑动操作。

    注:坐标定位时采用相对定位方式,可适配其他分辨率。

    1、坐标点击屏幕元素

    <!-- https://mvnrepository.com/artifact/io.appium/java-client -->
            <dependency>
                <groupId>io.appium</groupId>
                <artifactId>java-client</artifactId>
                <version>7.1.0</version>
            </dependency>

    <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.10</version>
                <scope>test</scope>
            </dependency>

     前提准备:连接驱动设备

    public DesiredCapabilities getCapabilities() {
    			    DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
    				desiredCapabilities.setCapability("platformName", "Android");
    				desiredCapabilities.setCapability("platformVersion", "9");
    				desiredCapabilities.setCapability("deviceName", "923QEDUK22434");
    				desiredCapabilities.setCapability("appPackage", "com.leke.lekechat");
    				desiredCapabilities.setCapability("appActivity", "com.leke.lekechat.ui.SplashFirstActivity");
    				desiredCapabilities.setCapability("automationName", "UiAutomator2");
    				desiredCapabilities.setCapability("noReset", "True");
    			return desiredCapabilities;
    		}
    		
    		public AndroidDriver  getDriver() {
    			private static final String APPIUM_SERVER_REMOTE = "http://localhost:4723/wd/hub";
    			DesiredCapabilities desiredCapabilities =this.getCapabilities();
    			URL remoteUrl = null;
    			try {
    				remoteUrl = new URL(APPIUM_SERVER_REMOTE);
    				driver = new AndroidDriver(remoteUrl, desiredCapabilities);
    			} catch (MalformedURLException e) {
    				e.printStackTrace();
    			}
    			return driver;
    		}

     实现点击:

    public void clickElement_OverScreen( AndroidDriver driver,int [ ][ ]  arr) {
    		TouchAction ta = new TouchAction(driver);
            int width = driver.manage().window().getSize().width;
            int height = driver.manage().window().getSize().height;    
            int P_base_X=arr[0][0];   //元素基准位置坐标
            int P_base_y=arr[0][1];
            int P_base_Screen_X=arr[1][0];//元素所在页的屏幕基准尺寸
            int P_base_Screen_Y=arr[1][1];
            int point_X=this.formatNumber(P_base_X, P_base_Screen_X, width);
            int point_Y=this.formatNumber(P_base_y, P_base_Screen_Y, height);
            PointOption point_Concat=PointOption.point(point_X,point_Y);
            ta.press(point_Concat).release().perform();
    		
    	}
    
    
    public int formatNumber(int P_1,int P_2,int P_3) {
    	        float dd=(float)P_1/(float)P_2;
    	        DecimalFormat df = new DecimalFormat("0.00000000");//格式化小数,不足的补0 
    	        String rat = df.format((double)dd);
    	        float ff=Float.parseFloat(rat);
    	        int formatNum =(int) (ff*P_3);
    	       return  formatNum;
    	}

    示例:

        @Test
    	public void clickElement_1() {
            //arr[0]:当前屏幕上元素的坐标;arr[1]:当前屏幕的分辨率
    		int[][] keyboardArr = { { 980, 2050 }, { 1080, 2098 } }; //手机键盘的搜索按钮坐标
    		AndroidDriver driver = this.getDriver();
    		this.clickElement_OverScreen(driver, keyboardArr); //屏幕构造坐标点位并点击
    		
    	}

    2、滑动屏幕

    public void executeSlide(AndroidDriver driver,int [ ][ ]  arr) {
    		TouchAction ta = new TouchAction(driver);
            int width = driver.manage().window().getSize().width;//当前屏幕的宽度
            int height = driver.manage().window().getSize().height; //当前屏幕的高度
          //new一个TouchAction对象,调用其按压press()方法,输入坐标点,moveTo移动到下一个坐标点,之后调用release()和perform()方法执行
            PointOption P_B=   PointOption.point(width*arr[0][0]/arr[0][1], height*arr[1][0]/arr[1][1]);
            PointOption P_N=   PointOption.point(width*arr[2][0]/arr[2][1], height*arr[3][0]/arr[3][1]);
            WaitOptions waitOption = WaitOptions.waitOptions(Duration.ofSeconds(1));//设置动作持续时间:按压一秒
            ta.press(P_B).waitAction(waitOption).moveTo(P_N).release().perform();//按压一秒——移动——松开释放
    	}
    	@Test
    	public void clickElement_1() {
    		//表示沿X轴平移——左滑(0.9X-->0.3X) Y轴坐标为屏幕height的0.8倍
    		int[][] arr = { { 9, 10 }, { 4, 5 }, { 3, 10 }, { 4, 5 } };
    		AndroidDriver driver = this.getDriver();
    		this.executeSlide(driver, arr);
    		
    	}

     

     

    展开全文
  • android手机屏幕滑动

    2016-06-23 11:25:07
    可实现手机屏幕的滑动
  • Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备的程序进行压力测试,检测程序多久的时间会发生异常。 二、Monkey程序介绍 1) Monkey程序由...
  • 一个主要由无障碍服务实现的不需要Root权限的类似按键精灵的自动操作软件,可以实现自动点击、滑动、输入文字、打开应用等。 同时有可提供基础的在桌面开发的功能。 下载地址: Alpha版本: 特性 简单易用的自动操作...
  • 只要点击鼠标就能随心抓取屏幕上的任何东西,支持拖放功能,可以直接从系统、浏览器或其他程序中导入图片,收藏夹功能让你能更好的收集更多精彩图片。 根据当前要操作的对象的形状,支持六种捕捉方式:捕捉活动窗口...
  • 屏幕记忆软件

    2012-02-10 00:27:46
    用于电脑操作时的录像,同时进行声音录音,可以加入logo,方便制作课件
  • 作者hyb1996,源码Auto.js,一个主要由无障碍服务实现的不需要Root权限的类似按键精灵的自动操作软件,可以实现自动点击、滑动、输入文字、打开应用等。 同时有Sublime Text 插件可提供基础的在桌面开发的功能。 ...
  • 如题↑ 好烦呀,还要拖动底部的滚动条,一点都不程序员 左上角 文件 首选项 设置 搜索 editor.wordWrap bingo√ 多爽呦

    如题↑

    好烦呀,还要拖动底部的滚动条,一点都不程序员


    左上角   文件   首选项   设置

    搜索   editor.wordWrap

    bingo√

    多爽呦

    展开全文
  • 跟随好几年的ThinkPad,WIN7,只要窗口超出屏幕外,鼠标移到对应的屏幕边缘,窗口就自动的移动显示完全,很讨厌这个功能,一直没找到在哪里,这下终于找到解决方案了! 桌面空白右键 -&gt; 屏幕分辨率 -&...

    跟随好几年的ThinkPad,WIN7,只要窗口超出屏幕外,鼠标移到对应的屏幕边缘,窗口就自动的移动显示完全,很讨厌这个功能,一直没找到在哪里,这下终于找到解决方案了!

    桌面空白右键 -> 屏幕分辨率 -> 高级设置 -> 屏幕显示 -> 自动滚屏

    如图

    不知道这是WIN7特有的功能还是thinkpad装了什么驱动才有的功能。

    展开全文
  • Unity3D手指滑动屏幕更改相机视角,相机跟随代码。安卓端的相机跟随代码。
  • //如果文本的高度大于ScrollView,就自动滑动 } } } }; new Timer( "计时器" ).scheduleAtFixedRate( new TimerTask() { @Override public void run() { int time = ( int )((SystemClock. ...

    今天搞了一个Textview文本超出一屏文本显示的问题,在网上搜索了好多办法,最后中和了下。

    xml布局文件:

    <TextView
        android:id="@+id/timerText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         />
    
    <ScrollView
        android:id="@+id/sv_show"
        android:fillViewport="true"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView
            android:id="@+id/tv_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:hint="Display time here"
            android:textSize="20dp"
            android:scrollbars="vertical"
            android:singleLine="false"
            android:textColor="#ff0000"
            android:background="#00ffaa"
            />
    </ScrollView>
    上面第一个Textview是一个计时的测试view

    MainActivity.java

    //计时器
    

    private long baseTimer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_view_scroll);
        tv_text=(TextView)findViewById(R.id.tv_text);
        timerText=(TextView)findViewById(R.id.timerText);
        sv_show=(ScrollView) findViewById(R.id.sv_show);
        tv_text.setMovementMethod(ScrollingMovementMethod.getInstance());
    
        final Handler startTimehandler = new Handler(){
            public void handleMessage(android.os.Message msg) {
                if (null != timerText) {
                    timerText.setText((String) msg.obj);
                    tv_text.append("开始:"+msg.obj);
                    tv_text.append("\n");
                    int offset=tv_text.getLineCount()*tv_text.getLineHeight();//判断textview文本的高度
                    if (offset > sv_show.getHeight()) {
                        tv_text.scrollTo(0,offset - sv_show.getHeight());//如果文本的高度大于ScrollView,就自动滑动
                    }
                }
            }
        };
        new Timer("计时器").scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                int time = (int)((SystemClock.elapsedRealtime() - TextViewScrollActivity.this.baseTimer) / 1000);
                String hh = new DecimalFormat("00").format(time / 3600);
                String mm = new DecimalFormat("00").format(time % 3600 / 60);
                String ss = new DecimalFormat("00").format(time % 60);
                String timeFormat = new String(hh + ":" + mm + ":" + ss);
                Message msg = new Message();
                msg.obj = timeFormat;
                startTimehandler.sendMessage(msg);
            }
    
        }, 0, 1000L);
    }

    因为没找到上传视频的办法大哭大哭大哭我后期在研究为什么(如果有大神指导,希望大神好心指导下哦微笑,就先发个链接吧。

    http://www.56.com/u53/v_MTUxMDMyNTA2.html

    大家可以进入这个链接查看


    展开全文
  • 尤其是自动滚屏截图,当鼠标移动到滚动窗口时,软件自动识别并显示高亮窗口,此时你只需点下左键,网页或文档的滚动条会自己往下跑! 4中屏幕录像功能任你选择!而且没有任何水印!这是很少有的,因为大家都知道...
  • 钉钉自动打卡(需要开启极速打卡),在华为手机测试,需要手机取消解锁屏幕需要输入密码或滑动(一般在开发者选项里,如果没有就把手机设置为屏幕常亮不锁屏),取消电源后台限制(华为手机在电池管理中添加本应用...
  • 安卓自动化工具:解锁屏幕+打开支付宝蚂蚁森林+收取能量+种树浇水+自动退出   一、实现方法 Tasker(定时任务,启动各个部件)+Auto.js(脚本解锁屏幕)+Autoinput(模拟点击屏幕)+VirtualXposed(收集能量,...
  • autojs的滑动脚本代码,屏幕翻页滚动

    万次阅读 2019-10-09 10:00:37
    Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型 Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面 Auto.js Pro使用的javascript的语法比较优雅,代码可读性强 Auto.js Pro的命令...
  • 安卓开发可以拖拽,拖拽后自动吸附到手机屏幕边的自定义view
  • 实现下滑自动播放视频只要一个Activity (先放主要代码,全部代码会在最下方给出)  1.layout只有一个RecyclerView 代码就不贴出了  2.设置RecyclerView  private void init() { recyclerView = ...
  •  这个相对于第1点来说,技术没那么难,但是考虑的问题要多些,屏幕的大小,分辨率的改变,最小化,最大化窗口时,都要去考虑一下。 四:用鼠标模拟拖动验证码    在c#中模拟鼠标的拖动,我调用了Windows...
  • mCameraDistance是滑动屏幕到边缘不能再滑动时拖动的Z轴距离,就是那种3D效果,默认的是8000,我把它改为1000,3D效果更明显了 mOriginalDefaultPage是开机时默认的屏幕序号. 往下看initWorkspace()方法 ...
  • 将电脑显示通过网络,特别是WIFI连接到另外一个显示器显示出来,又叫... 主流的技术实现方式就是:在电脑发送端,通过软件屏幕捕捉下来(就是截屏),压缩后,通过网络传输到另外一个电脑接收后显示。另外这个设备
  • Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型 Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面 Auto.js Pro使用的javascript的语法比较优雅,代码可读性强 Auto.js Pro的命令...
  • 原理:在app添加一个智能辅助服务然后在设置界面打开智能辅助即可在服务中监听屏幕各种状态,我们可以监听安装的install包然后监听安装弹框的“安装”点击按钮,监听到直接进入安装流程就可以了 可能上面说的比较绕...
  • 微信朋友圈自动点赞

    万次阅读 多人点赞 2019-03-10 10:36:13
    不给被人点赞也没啥坏处,但你不评不赞,难免会让你和好友之间有些疏远,给别人点赞吧我又嫌麻烦,于是一直想着做个自动点赞的东西,今天基本实现了,虽然诸多不完整和诸多限制,但还是决定分享出来,主要是我觉得还...
  • 安卓自动点击器

    2019-04-11 13:15:44
    自动点击器安卓版是一款非常好用的免root屏幕自动点击器软件,将以您选择的任何时间间隔可靠地点击或滑动您在屏幕定位的任何位置。  自动点击器不需要root权限,并可用于全屏应用程序。  如果您需要保持游戏处于...
  • 可以利用scrollIntoView()来解决: $("input").on("focus",function(){ ...等社交软件聊天界面里聊天消息总是能够出现在可视区域,那就是用了scrollIntoView(),否则聊天消息就会隐藏在其他消息下边,无法可见。
  • 实测 11 款远程视频会议软件,宅家工作也能如丝般顺滑 以下文章来源于超人测评 ,作者会议室钉子户超妹 来源 | 超人测评(ID:chaorencp) 撰文、制图 | 钱大姐 编辑 | 雨哥 测评官 | 雨哥、钱大姐、塔塔、泽哥、...
  • Auto.JS实现抖音,刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频 代码如下 auto(); var appName=rawInput("","刷宝短视频"); launchApp(appName); sleep("5000"); setScreenMetrics(1080,1920); toast(...
  • 4.滑动屏幕隐藏或显示导航面板,在软件主界面,通过滑动屏幕上除滑动按钮之外的其他区域,向下或向左能够隐藏滑动导航面板,反方向开启,通过什么步骤隐藏了面板,通过相反操作步骤显示面板,该功能可以开启或关闭。...
  • 前言 大家都知道实现状态栏(statusBar)点击自动回到顶部效果,旨在为用户在浏览界面时提供便利,点击状态栏能够快速回到界面顶部,...在一个控制器添加一个tabView,那么默认点击statusBar是可以自动回到顶部的。
  • 一般抓图软件只能抓当前屏幕上看到的内容,此软件可以自动滑动窗口条抓取全部网页,免安装。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,949
精华内容 6,779
关键字:

屏幕自动上滑软件