Java 在Appium ios中使用Selenium Webdriver选择器

Java 在Appium ios中使用Selenium Webdriver选择器,java,selenium,testing,appium-ios,Java,Selenium,Testing,Appium Ios,我参与的一个项目是在开发一个web应用程序的同时开发一个ios应用程序(用于相同的目的),我希望能够使用现有的Selenium测试,但我们在选择器方面遇到了问题。Selenium Webdriver和Appium ios是否都有一个选择器类型或属性名称,这样我就可以将变量设置为浏览器或应用程序,它们可以同时运行和工作。在这个项目中,以前没有人使用过Appium,所以我们缺乏很多知识 我尝试使用ID,发现ios无法使用它们,改为名称,发现名称已从appium中删除。如果可能的话,我们更愿意在浏览器

我参与的一个项目是在开发一个web应用程序的同时开发一个ios应用程序(用于相同的目的),我希望能够使用现有的Selenium测试,但我们在选择器方面遇到了问题。Selenium Webdriver和Appium ios是否都有一个选择器类型或属性名称,这样我就可以将变量设置为浏览器或应用程序,它们可以同时运行和工作。在这个项目中,以前没有人使用过Appium,所以我们缺乏很多知识

我尝试使用ID,发现ios无法使用它们,改为名称,发现名称已从appium中删除。如果可能的话,我们更愿意在浏览器中使用与应用程序中相同的选择器


谢谢

如何创建多个对象存储库并基于底层平台加载相关的对象存储库
1.因此,您需要将这两个平台的定位器存储在单独的存储库中

2.创建一个接口/包装器,该接口/包装器将根据要运行测试的平台加载相关的存储库。

您可以创建一个对象存储库文件,其中包含WebApp和iOS app的定位器。然后,您必须遵循以下流程

  • 创建
    WebDriver
    AppiumDriver
    实例
  • 使用相关驱动程序查找WebApp和iOS app中的元素。我们可以在一个测试用例中使用这两个驱动程序
  • 请注意,
    WebDriver
    AppiumDriver
    标识元素的方式将有所不同。例如,在
    WebDriver
    中,如果使用
    ID
    标识元素,则类似地,在
    AppiumDriver
    中,可以使用
    findelementbaccessibilityid
    标识元素

    即使
    AppiumDriver
    使用与
    WebDriver
    相同的逻辑,方法名称也会有所不同。请查找
    AppiumDriver


    希望这能有所帮助。

    没有完全理解这个问题,但对于Appium,您已经为bot iOS和Android平台分别添加了注释,类似于web via:

    @FindBy(id="buttonOK")
    private WebElement buttonPopUp;
    
    下面是Android和iOS的示例

    @iOSFindBy(id = "lets_do_it")
    @AndroidFindBy(id = "message_popup_dismiss_button")
    @WithTimeout(unit = TimeUnit.SECONDS, time = 1)
    private MobileElement buttonPopUp;
    
    所以在同一个pageObject中,您已经涵盖了这两种平台

    移动平台可以一起工作,但建议不要混合使用web和移动设备,但移动平台可以很好地一起工作,并且建议可以共享相同的代码功能