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