Truy xuất nội dung clipboard trên thiết bị Android bằng Appium

Phiên bản mới của Appium đã bổ sung tính năng truy xuất nội dung clipboard. Trong các phiên bản cũ, việc này khá phức tạp và khó tìm giải pháp. Với phiên bản mới, việc lấy nội dung clipboard trên Android trở nên đơn giản chỉ với một dòng mã:
String noiDungClipboard = driver.getClipboardText();
Dưới đây là ví dụ minh họa sử dụng ứng dụng Youdao Note APK:
import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.touch.WaitOptions;
import io.appium.java_client.touch.offset.PointOption;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.net.MalformedURLException;
import java.net.URL;
import java.time.Duration;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class ViDuClipboardAndroid {
    public static void main(String[] args) {
        String thietBiId = "Y9K0214B13002052";
        thietBiId = "192.168.116.101:5555";
        AndroidDriver<WebElement> driver = null;
        DesiredCapabilities caiDat = new DesiredCapabilities();
        caiDat.setCapability("deviceName", thietBiId);
        caiDat.setCapability("udid", thietBiId);

        // Thiết lập phiên bản hệ điều hành Android
        caiDat.setCapability("platformName", "Android");
        caiDat.setCapability("automationName", "uiautomator2");
        caiDat.setCapability("platformVersion", "5.1");

        // Thời gian chờ cho session
        caiDat.setCapability("newCommandTimeout", 24000);
        caiDat.setCapability("noReset", true);
        caiDat.setCapability("unicodeKeyboard", "True");
        caiDat.setCapability("resetKeyboard", "True");
        
        // Thiết lập package và activity chính của ứng dụng
        caiDat.setCapability("appPackage", "com.youdao.note");
        caiDat.setCapability("appActivity", "com.youdao.note.activity2.SplashActivity");

        String url = "http://127.0.0.1:4723/wd/hub";

        try {
            driver = new AndroidDriver<WebElement>(new URL(url), caiDat);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

        // Tạo ghi chú mới
        driver.findElementById("com.youdao.note:id/add_note").click();
        driver.findElementById("com.youdao.note:id/add_note_floater_add_note").click();

        // Đặt nội dung vào clipboard
        driver.setClipboardText("đây là nội dung thử nghiệm clipboard");
        
        // Lấy nội dung từ clipboard
        String noiDungClipboard = driver.getClipboardText();
        
        // Nhập nội dung clipboard vào tiêu đề ghi chú
        WebElement elementTieuDe = driver.findElementById("com.youdao.note:id/note_title");
        elementTieuDe.click();
        elementTieuDe.sendKeys(noiDungClipboard);
    }
}

Thẻ: appium Android automation clipboard Mobile Testing

Đăng vào ngày 2 tháng 8 lúc 08:45