Appium 最近席卷了自动化世界。我与之交谈的大多数客户专门使用它来测试他们的 Android 和 iOS 应用程序。他们面临的一个常见问题是知道如何使用自动化在真实设备上测试他们的网站,而不是依靠桌面浏览器上的内置调试工具来模拟移动布局。
在 HeadSpin,我们专注于向客户展示真实设备上的真实用户体验,因此我们必须拥有一个允许测试移动网站的自动化框架。幸运的是,Appium 对 iOS 的 Safari 和 Android 的 Chrome 上的测试提供了强大的支持。最近,我们最大的电信客户之一聘请了我们的专业服务团队,将其所在国家/地区的几个最受欢迎的网站自动化。这是一个有趣的挑战,所以我想分享这个过程,希望它能帮助自动化社区为他们的移动网站构建强大的、可扩展的自动化测试。
使用 Appium Desktop
在研究一个没有源代码或可访问性 ID 的新应用程序时,我做的第一件事是使用 Appium Desktop——一个很好的 Appium 前端,带有内置检查器。
幸运的是,Headspin 消除了设置服务器的大量艰苦工作,并提供了自己的精简检查器,无需服务器。
首先,让我们连接到我们选择的设备并使用 Android 版 Chrome(iOS 版 Safari 也可以)。以下是所用功能的示例:
Android:
{
“deviceName”: “SM-G960F”,
“udid”: “xxxxxxx”,
“autoAcceptAlerts”: true,
“automationName”: “UiAutomator2”,
“browserName”: “Chrome”,
“platformName”: “Android”,
“headspin:autoDownloadChromedriver”: true
}
iOS:
{
“deviceName”: “iPhone X”,
“udid”: “xxxxxxxxxxxxx”,
“automationName”: “XCUITest”,
“platformVersion”: “13.3”,
“platformName”: “iOS”,
“browserName”: “Safari”,
“safariInitialUrl”: “https://wikipedia.org”,
“autoWebview”: true
}
在 Android 上的 Chrome 上进行本地测试需要 Chromedriver。 使用 Headspin,我们设置了在自动测试之前下载最新版本的功能。 在 Safari 上进行测试需要在手机上打开网络检查器。
进入检查器后,我们可以调查网站的本机路径和 ID。 首先让我们使用 Go to URL in Web – Navigation Actions 导航到我们的站点:
查看源代码,请注意大多数元素描述符不是人类可读的或提供信息的。
使用 Chrome 或 Safari 来帮助识别元素
让我们使用 Chrome 或 Safari 中的内置元素检查器来帮助编写我们的自动化脚本,而不是标准的应用程序自动化工作流程。
让我们在 Chrome 中打开我们的页面并使用 F12 访问 devtools。
现在,单击检查器窗口左上角的切换设备工具栏并选择您喜欢的分辨率。
现在准备代码。 指定 Appium 功能并初始化驱动程序后,让我们使用 driver.get 访问网站(所有代码示例都在 python 中,您喜欢的语言的等效绑定可以在链接的 appium 文档中找到。)
driver.get(“https://wikipedia.org”)
接下来,让我们使用 Chrome 来检查我们想要与之交互的元素。
我们可以检查元素并注意到有两种方法可以找到与 Appium 交互的元素。
首先是使用顶部的 HTML 代码。我们可以使用 find_element_by_xpath(或 xpaths,如果有多个)功能根据 HTML 元素描述符进行选择。在这种情况下:
element = driver.find_element_by_xpath(“//a[@id=’js-link-box-en’]”)
element.click()
或者我们可以使用底部的 CSS 选择器和 find_elements_by_css_selector 类。在大多数情况下,多个元素将使用相同的 CSS 选择器,因此我们需要在数组中选择正确的元素:
element = driver.find_elements_by_css_selector(“.central-featured-lang”)
element[0].click()
您可以使用这两种策略来构建脚本的其余部分。我希望这能帮助您构建健壮、可扩展的 Appium 脚本来测试您的移动网页!如果您需要任何帮助,我们提供 Headspin 大学 Appium 和 Selenium 课程,其中包含您开始自动化之旅所需的一切。