解决方法如下:
首先,确保你的项目中已经添加了Selenium和Appium的依赖。
在你的测试类中,导入所需的包:
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.pagefactory.AndroidFindBy;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.PageFactory;
import java.net.URL;
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("platformName", "Android");
caps.setCapability("deviceName", "your_device_name");
caps.setCapability("app", "path_to_your_app");
AndroidDriver driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), caps);
public class YourPage {
public YourPage(AndroidDriver driver) {
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}
@AndroidFindBy(id = "your_element_id")
private AndroidElement yourElementById;
@AndroidFindBy(xpath = "your_xpath_expression")
private AndroidElement yourElementByXpath;
// 添加其他元素定位器...
public AndroidElement getYourElementById() {
return yourElementById;
}
public AndroidElement getYourElementByXpath() {
return yourElementByXpath;
}
// 添加其他元素的getter方法...
}
YourPage page = new YourPage(driver);
AndroidElement elementById = page.getYourElementById();
AndroidElement elementByXpath = page.getYourElementByXpath();
// 进行操作,比如点击或输入文本
elementById.click();
elementByXpath.sendKeys("your_text");
这样,你就可以使用@AndroidFindBy
注解将元素定位器添加到你的页面类中,然后通过实例化页面类并使用getter方法获取元素,从而进行操作。