点击指定控件的某个位置

今天遇到一个问题,想要点击某个控件的某个位置(左上,左下,右上,右下,中间),稍微做了封装,具体代码如下,有不妥欢迎指出:

    <span class="cm">/**
     * 单个手指,点击屏幕某个控件位置(左上,左下,右上,右下,中间)
     */</span>
    <span class="kd">public</span> <span class="kd">enum</span> <span class="n">Location</span> <span class="o">{</span>
        <span class="n">UPLEFT</span><span class="o">,</span> <span class="n">LOWLEFT</span><span class="o">,</span> <span class="n">UPRIGHT</span><span class="o">,</span> <span class="n">LOWRIGHT</span><span class="o">,</span> <span class="n">CENTRE</span>
    <span class="o">}</span>

    <span class="cm">/**
     * 点击控件某个地方
     *
     * @param step
     * @param by
     * @param location
     */</span>
    <span class="kd">public</span> <span class="kt">void</span> <span class="n">clickControl</span><span class="o">(</span><span class="n">String</span> <span class="n">step</span><span class="o">,</span> <span class="n">By</span> <span class="n">by</span><span class="o">,</span> <span class="n">Location</span> <span class="n">location</span><span class="o">)</span> <span class="o">{</span>
        <span class="n">log</span><span class="o">.</span><span class="na">info</span><span class="o">(</span><span class="n">step</span><span class="o">);</span>
        <span class="c1">// 获取控件开始位置的坐标轴</span>
        <span class="n">Point</span> <span class="n">start</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="na">findElement</span><span class="o">(</span><span class="n">driver</span><span class="o">,</span> <span class="n">by</span><span class="o">).</span><span class="na">getLocation</span><span class="o">();</span>
        <span class="kt">int</span> <span class="n">startX</span> <span class="o">=</span> <span class="n">start</span><span class="o">.</span><span class="na">x</span><span class="o">;</span>
        <span class="kt">int</span> <span class="n">startY</span> <span class="o">=</span> <span class="n">start</span><span class="o">.</span><span class="na">y</span><span class="o">;</span>
        <span class="c1">// 获取控件坐标轴差</span>
        <span class="n">Dimension</span> <span class="n">q</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="na">findElement</span><span class="o">(</span><span class="n">driver</span><span class="o">,</span><span class="n">by</span><span class="o">).</span><span class="na">getSize</span><span class="o">();</span>
        <span class="kt">int</span> <span class="n">x</span> <span class="o">=</span> <span class="n">q</span><span class="o">.</span><span class="na">getWidth</span><span class="o">();</span>
        <span class="kt">int</span> <span class="n">y</span> <span class="o">=</span> <span class="n">q</span><span class="o">.</span><span class="na">getHeight</span><span class="o">();</span>
        <span class="c1">// 计算出控件结束坐标</span>
        <span class="kt">int</span> <span class="n">endX</span> <span class="o">=</span> <span class="n">x</span> <span class="o">+</span> <span class="n">startX</span><span class="o">;</span>
        <span class="kt">int</span> <span class="n">endY</span> <span class="o">=</span> <span class="n">y</span> <span class="o">+</span> <span class="n">startY</span><span class="o">;</span>

        <span class="k">switch</span> <span class="o">(</span><span class="n">location</span><span class="o">)</span> <span class="o">{</span>
            <span class="c1">// 左上 点击</span>
            <span class="k">case</span> <span class="nl">UPLEFT:</span>
                <span class="n">driver</span><span class="o">.</span><span class="na">tap</span><span class="o">(</span><span class="mi">1</span><span class="o">,</span> <span class="n">startX</span> <span class="o">+</span> <span class="mi">10</span><span class="o">,</span> <span class="n">startY</span> <span class="o">+</span> <span class="mi">10</span><span class="o">,</span> <span class="mi">100</span><span class="o">);</span>
                <span class="n">TaquTools</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">2</span><span class="o">);</span>
                <span class="k">break</span><span class="o">;</span>
            <span class="c1">// 右上 点击</span>
            <span class="k">case</span> <span class="nl">UPRIGHT:</span>
                <span class="n">driver</span><span class="o">.</span><span class="na">tap</span><span class="o">(</span><span class="mi">1</span><span class="o">,</span> <span class="n">endX</span> <span class="o">-</span> <span class="mi">10</span><span class="o">,</span> <span class="n">startY</span> <span class="o">+</span> <span class="mi">10</span><span class="o">,</span> <span class="mi">100</span><span class="o">);</span>
                <span class="n">TaquTools</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">2</span><span class="o">);</span>
                <span class="k">break</span><span class="o">;</span>
            <span class="c1">// 左下 点击</span>
            <span class="k">case</span> <span class="nl">LOWLEFT:</span>
                <span class="n">driver</span><span class="o">.</span><span class="na">tap</span><span class="o">(</span><span class="mi">1</span><span class="o">,</span> <span class="n">startX</span> <span class="o">+</span> <span class="mi">10</span><span class="o">,</span> <span class="n">endY</span> <span class="o">-</span> <span class="mi">10</span><span class="o">,</span> <span class="mi">100</span><span class="o">);</span>
                <span class="n">TaquTools</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">2</span><span class="o">);</span>
                <span class="k">break</span><span class="o">;</span>
            <span class="c1">// 右下 点击</span>
            <span class="k">case</span> <span class="nl">LOWRIGHT:</span>
                <span class="n">driver</span><span class="o">.</span><span class="na">tap</span><span class="o">(</span><span class="mi">1</span><span class="o">,</span> <span class="n">endX</span> <span class="o">-</span> <span class="mi">10</span><span class="o">,</span> <span class="n">endY</span> <span class="o">-</span> <span class="mi">10</span><span class="o">,</span> <span class="mi">100</span><span class="o">);</span>
                <span class="n">TaquTools</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">2</span><span class="o">);</span>
                <span class="k">break</span><span class="o">;</span>
            <span class="c1">// 中间 点击</span>
            <span class="k">case</span> <span class="nl">CENTRE:</span>
                <span class="n">driver</span><span class="o">.</span><span class="na">tap</span><span class="o">(</span><span class="mi">1</span><span class="o">,</span> <span class="o">(</span><span class="n">endX</span> <span class="o">+</span> <span class="n">startX</span><span class="o">)</span> <span class="o">/</span> <span class="mi">2</span><span class="o">,</span> <span class="o">(</span><span class="n">endY</span> <span class="o">+</span> <span class="n">startY</span><span class="o">)</span> <span class="o">/</span> <span class="mi">2</span><span class="o">,</span> <span class="mi">100</span><span class="o">);</span>
                <span class="n">TaquTools</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">2</span><span class="o">);</span>
                <span class="k">break</span><span class="o">;</span>
        <span class="o">}</span>
    <span class="o">}</span>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值