繁体   English   中英

在Appium iOS中使用Selenium Webdriver选择器

[英]Using Selenium Webdriver Selectors in Appium ios

我正在进行的一个项目正在与ios应用程序同时开发一个Web应用程序(出于同一目的),我希望能够使用现有的Selenium测试,但是选择器遇到了麻烦。 是否存在可用于Selenium Webdriver和Appium ios的选择器类型或属性名称,所以我可以将变量设置为浏览器或应用程序,并且它们可以在两者上运行并起作用。 该项目中没有人以前使用过Appium,因此我们缺乏很多知识。

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

谢谢

您可以创建一个对象存储库文件,其中包含WebApp和iOS应用程序的定位器。 然后,您必须按照以下过程

  1. 创建WebDriverAppiumDriver实例
  2. 使用相关的驱动程序来查找WebApp和iOS应用程序中的元素。 我们可以在测试用例中同时使用两个驱动程序。

请注意, WebDriverAppiumDriver标识元素的方式将有所不同。 例如,在WebDriver如果通过使用ID标识元素,则类似地在AppiumDriver ,可以通过使用findElementByAccessibilityId标识元素。

即使AppiumDriver使用与WebDriver相同的逻辑,方法名称也将有所不同。 请找到AppiumDriver使用的所有方法的链接

希望这可以帮助。

如何创建多个对象存储库并基于基础平台加载相关的对象存储库?
1.因此,您需要将两个平台的定位器存储在单独的存储库中
2.创建一个接口/包装,它将基于要运行测试的平台加载相关的存储库。

尚未完全解决问题,但对于Appium,您已通过以下方式为bot iOS和Android平台(与网络类似)分隔了注释:

@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和移动平台混合使用,但是移动平台可以很好地协同工作,因此建议它们共享相同的代码功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM