方法:
  1. 找到元素
  2. 获取元素的坐标
  3. 获取元素的size
  4. 百分比拖动进度条
代码:
	public void testSeekbar() throws Exception{
        Thread.sleep(3000);
        driver.findElementByAndroidUIAutomator("new UiSelector().text(\"LOG IN\")").click();
        driver.findElementByAndroidUIAutomator("new UiSelector().text(\"Slider\")").click();
        MobileElement slider =driver.findElementByAccessibilityId("slider");
        //精度不是很准确,需自己调,当percent为1时可能不会移动到100%,可以尝试1.5或2
        // 拖动100%
        moveSeekbar(slider, 1.5);
        // 拖动40%
//        moveSeekbar(slider, 0.6);
    }

    public void moveSeekbar(MobileElement element, double percent){
        // 获取拖动条的宽
        int width = element.getSize().getWidth();
        // 获取坐标
        int x = element.getLocation().getX();
        int y = element.getLocation().getY();
        TouchAction action = new TouchAction(driver);
        action.press(x,y).moveTo((int)(width*percent),y).release().perform();
    }
  • python(具体参考GitHub
    def test_seekbar(self):
        self.driver.implicitly_wait(3)
        self.driver.find_element_by_android_uiautomator("new UiSelector().text(\"LOG IN\")").click()
        self.driver.find_element_by_android_uiautomator("new UiSelector().text(\"Slider\")").click()
        slider = self.driver.find_element_by_accessibility_id("slider")
        self.driver.implicitly_wait(2)
        # 移动 100%
        # self.move_seekbar(slider, 1.5)
        # 移动 40%
        self.move_seekbar(slider, 0.4)

    def move_seekbar(self, element, percent):
        # 精度不是很准确,需自己调,当percent为1时可能不会移动到100%,可以尝试1.5或2
        # 获取拖动条的宽
        width = element.size.get("width")
        # 获取坐标
        x = element.location.get("x")
        y = element.location.get("y")
        self.driver.swipe(x, y, int(width*percent), y, 1000)
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐