是的,Appium 2.0支持在原生应用中高亮元素。以下是使用Appium 2.0高亮元素的示例代码:
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import java.time.Duration;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.interactions.touch.TouchActions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class HighlightElementInAppium {
//示例代码,需替换为您要测试的应用程序
private static final String appPackage = "com.example.android.app";
private static final String appActivity = "com.example.android.app.MainActivity";
public static void main(String[] args) {
//设置Appium服务器的URL,并构造DesiredCapabilities对象
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "Android Emulator");
capabilities.setCapability("appPackage", appPackage);
capabilities.setCapability("appActivity", appActivity);
capabilities.setCapability("automationName", "UiAutomator2");
//创建AndroidDriver对象,并启动应用
AndroidDriver driver = new AndroidDriver<>(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
//使用WebDriverWait等待页面加载
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("exampleElementId")));
//获取要高亮的元素
MobileElement elementToHighlight = driver.findElement(By.id("exampleElementId"));
//使用JavascriptExecutor实现高亮
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute('style', 'border: 3px solid red;');", elementToHighlight);
//使用TouchActions模拟点击操作
TouchActions actions = new TouchActions(driver);
actions.tap(elementToHighlight);
actions.perform();
//关闭应用
driver.quit();
}
}
在上述代码中,使用了JavascriptExecutor执行JavaScript代码实现了高亮效果,使用了TouchActions类模拟了点击操作。使用WebDriverWait等待页面加载,确保元素存在。