Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当Android和;IOS XPath已定义_Java_Selenium_Appium_Appium Android - Fatal编程技术网

Java 当Android和;IOS XPath已定义

Java 当Android和;IOS XPath已定义,java,selenium,appium,appium-android,Java,Selenium,Appium,Appium Android,我是Appium的新手,计划使用Appium page factory在android和IOS中使用相同的脚本执行测试,目前我正在android设备上工作,因此我将IOS xpath保持为null,当我执行脚本时抛出错误“userNameTextBox=null”。我这里有两个问题 1.基于什么标准,Appium页面工厂将知道选择android或IOS的xpath 2.虽然我使用的是Android驱动程序,但为什么在我的代码中会抛出“userNameTextBox为Null” private

我是Appium的新手,计划使用Appium page factory在android和IOS中使用相同的脚本执行测试,目前我正在android设备上工作,因此我将IOS xpath保持为null,当我执行脚本时抛出错误“userNameTextBox=null”。我这里有两个问题 1.基于什么标准,Appium页面工厂将知道选择android或IOS的xpath 2.虽然我使用的是Android驱动程序,但为什么在我的代码中会抛出“userNameTextBox为Null”

 private AndroidDriver<AndroidElement> driver;

    @AndroidFindBy(className = "android.widget.EditText")
    @iOSBy(className = "")
    private AndroidElement userNameTextBox;


  public void login(String userName, String password) throws InterruptedException {
        userNameTextBox.sendKeys(userName);
}


public static void main(String[] args) throws IOException, InvalidFormatException, InterruptedException {
        LaunchApplication.launchApp("samsungtablet");--This code will launch the app based on device passed
        LoginPage lp= new LoginPage();


        lp.login("test", "test");---Failing here 

}
私有AndroidDriver;
@AndroidFindBy(className=“android.widget.EditText”)
@iOSBy(className=”“)
私有AndroidElement用户名文本框;
公共无效登录(字符串用户名、字符串密码)引发InterruptedException{
userNameTextBox.sendKeys(用户名);
}
公共静态void main(字符串[]args)引发IOException、InvalidFormatException、InterruptedException{
LaunchApplication.launchApp(“samsungtablet”);--此代码将根据传递的设备启动应用程序
LoginPage lp=新的LoginPage();
lp.login(“test”、“test”);---此处失败
}

以前,应用程序没有正确设置驱动程序实例,因此我得到的xpath值为null,我在下面添加了从launchapplication类调用驱动程序的函数,它可以处理这个问题

public void login(String userName, String password) throws InterruptedException {
 this.driver = LaunchApplication.driver;
         PageFactory.initElements(new AppiumFieldDecorator(driver), this);

        userNameTextBox.sendKeys(userName);
}

显示初始化和/或传递到驱动程序的代码…谢谢你的提示,这就是问题所在,我修复了,它成功了