在 Appium 中使用 Selenium Webdriver 选择器 ios
Using Selenium Webdriver Selectors in Appium ios
我正在进行的一个项目正在开发一个网络应用程序,同时开发一个 ios 应用程序(用于同一件事),我希望能够使用现有的 Selenium 测试,但我们选择器有问题。是否有可用于 Selenium Webdriver 和 Appium ios 的选择器类型或属性名称,以便我可以将变量设置为浏览器或应用程序,它们 运行 并在两者上工作。这个项目之前没有人用过Appium,所以我们缺乏很多知识。
我尝试使用 ID,发现 ios 对它们不起作用,更改为名称,发现名称已从 appium 中删除。如果可能,我们更愿意使用在浏览器中与在应用程序中相同的选择器。
谢谢
如何创建多个对象库并基于底层平台加载相关对象库?
1. 所以你需要将两个平台的定位器存储在不同的存储库中
2. 创建一个接口/包装器,它将根据要进行测试的平台加载相关存储库 运行。
您可以创建一个对象存储库文件,其中包含 WebApp 和 iOS 应用程序的定位器。然后你必须按照下面的流程
- 创建
WebDriver
和 AppiumDriver
个实例
- 使用相关驱动程序在 WebApp 和 iOS 应用程序中定位元素。我们可以在测试用例中同时使用这两个驱动程序。
请注意,WebDriver
和 AppiumDriver
标识元素的方式会有所不同。例如,在 WebDriver
中,如果使用 ID
标识元素,则类似地在 AppiumDriver
中,可以使用 findElementByAccessibilityId
.
标识元素
尽管 AppiumDriver
使用与 WebDriver
相同的逻辑,但方法名称会有所不同。 AppiumDriver
使用的所有方法请找到link
希望对您有所帮助。
没有完全理解问题,但对于 Appium 你已经为机器人 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 中你已经涵盖了两个平台。
移动平台可以协同工作,但建议不要混合网页和移动,但移动平台可以一起玩,并且推荐这样可以共享相同的代码功能。
我正在进行的一个项目正在开发一个网络应用程序,同时开发一个 ios 应用程序(用于同一件事),我希望能够使用现有的 Selenium 测试,但我们选择器有问题。是否有可用于 Selenium Webdriver 和 Appium ios 的选择器类型或属性名称,以便我可以将变量设置为浏览器或应用程序,它们 运行 并在两者上工作。这个项目之前没有人用过Appium,所以我们缺乏很多知识。
我尝试使用 ID,发现 ios 对它们不起作用,更改为名称,发现名称已从 appium 中删除。如果可能,我们更愿意使用在浏览器中与在应用程序中相同的选择器。
谢谢
如何创建多个对象库并基于底层平台加载相关对象库?
1. 所以你需要将两个平台的定位器存储在不同的存储库中
2. 创建一个接口/包装器,它将根据要进行测试的平台加载相关存储库 运行。
您可以创建一个对象存储库文件,其中包含 WebApp 和 iOS 应用程序的定位器。然后你必须按照下面的流程
- 创建
WebDriver
和AppiumDriver
个实例 - 使用相关驱动程序在 WebApp 和 iOS 应用程序中定位元素。我们可以在测试用例中同时使用这两个驱动程序。
请注意,WebDriver
和 AppiumDriver
标识元素的方式会有所不同。例如,在 WebDriver
中,如果使用 ID
标识元素,则类似地在 AppiumDriver
中,可以使用 findElementByAccessibilityId
.
尽管 AppiumDriver
使用与 WebDriver
相同的逻辑,但方法名称会有所不同。 AppiumDriver
希望对您有所帮助。
没有完全理解问题,但对于 Appium 你已经为机器人 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 中你已经涵盖了两个平台。
移动平台可以协同工作,但建议不要混合网页和移动,但移动平台可以一起玩,并且推荐这样可以共享相同的代码功能。