Appium自动化(7):手机H5网页元素识别及操作

这篇具有很好参考价值的文章主要介绍了Appium自动化(7):手机H5网页元素识别及操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

H5网页

H5网页是指第5代HTML,也指用H5语言制作的一切数字产品。HTML5的设计目的是为了在移动设备上支持多媒体。目前很多网站都做了自适应,通过不同端打开呈现不同的网页效果。appium支持在手机端对web网页进行UI自动化操作。

环境搭建:

appium对手机端H5网页进行自动化操作步骤如下:

模拟器操作:

1、模拟器要下载兼容模拟器的谷歌浏览器 

下面网盘链接中包含了 chromeV8.0 版本浏览器和对应版本的 webdriver 驱动:

链接:https://pan.baidu.com/s/1Uu7RM94bW5CvLQO32DhyEQ
提取码:ovqb

2、在模拟器安装谷歌浏览器,并查看谷歌浏览器版本(右上角--设置--关于chrome)

3、下载与谷歌浏览器版本对应的chromedriver 程序

appium 浏览器打开网页,Appium,appium,自动化,智能手机

 

appium 浏览器打开网页,Appium,appium,自动化,智能手机

4、编写代码,测试环境是否可用

from appium import webdriver  # 导入appium 驱动包

des = {
    'automationName':'appium',
    'platformName':'Android',
    'platformVersion':'6.0.1',  # 填写android虚拟机/真机的系统版本号
    'deviceName':'MuMu',      # 填写安卓虚拟机/真机的设备名称
    'udid':'127.0.0.1:7555',    # 填写通过命令行 adb devices 查看到的udid
    'browserName':'chrome',
    'newCommandTimeout':30,        # 30秒没发送新命令就断开连接
       }

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',des)

driver.get('https://www.baidu.com')
time.sleep(5)

5、如果第4步运行成功,那么代表环境配置好了,则不需要第3步l;

如果第4步失败了,有两种方法(推荐使用第二种方法):

  方法1、把 appium 安装路径下的 chromedriver 替换为第3步下载的文件,首先找到appium安装包下的 chromedriver驱动(window的路径在C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win);之前的chromedriver驱动要备份,可以把之前的chromedriver驱动放到back文件夹中,然后再把第3步下载的chromedriver驱动放到路径win文件夹下;如下图:

appium 浏览器打开网页,Appium,appium,自动化,智能手机

   方法2、可以把第3步下载的chromedriver 驱动直接放到代码层级里面,然后再设置Desired Capabilities时,增加'browserName'、'chromedriverExecutable'参数,去掉app启动相关参数;如下图

appium 浏览器打开网页,Appium,appium,自动化,智能手机

 真机操作:

1、手机端安装google浏览器apk

2、查看google浏览器apk版本号,下载与之版本对应的chromedriver程序

3、把下载的chromedriver程序替换appium默认的chromedriver程序;有两种方式,具体可参考模拟器操作的第5步

4、设置Desired Capabilities时,增加'browserName'、'chromedriverExecutable'参数,去掉app启动相关参数,如下图代码

代码示例:

import time
from appium import webdriver  # 导入appium 驱动包

des = {
    'automationName':'appium',
    'platformName':'Android',
    'platformVersion':'9.1.0',  # 填写android虚拟机/真机的系统版本号
    'deviceName':'huawei',      # 填写安卓虚拟机/真机的设备名称
    'udid':'HBSBB18821510293',    # 填写通过命令行 adb devices 查看到的udid
    'browserName':'chrome',       # 浏览器的设备名称
    'newCommandTimeout':30,        # 30秒没发送新命令就断开连接
    # chrome浏览器版本对应的chromedriver程序包的路径
    'chromedriverExecutable':'C:/Users/Jeff/PycharmProjects/APP_AUTO_DEMO/webdriver/chromeV78/chromedriver.exe'
       }

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',des)

driver.get('https://www.baidu.com')
time.sleep(5)

如上述代码,手机启动chrome浏览器成功后,会出现--是否允许获取位置信息的弹框(注:该弹框属于原生app信息);如下图

 此时可以通过 print输出 driver.contexts 获取原生app元素和chrome 的元素;

代码示例:

# 获取原生app元素和chrome 的元素
print(driver.contexts)

输出结果:

appium 浏览器打开网页,Appium,appium,自动化,智能手机

先通过inspector 工具开启一个定位元素的窗口,然后再手动从真机上点击chrome 浏览器,然后定位原生app弹框上 ‘允许’的元素;如下图

 再编写代码切换到NATIVE_APP原生app的弹框上;并点击 允许按钮:

示例代码:

# 焦点切换到原生app的弹框上,点击允许按钮
driver.switch_to.context('NATIVE_APP')
driver.find_element(By.XPATH,'//android.widget.Button[@text="允许"]').click()

代码运行通过后,还会跳出另外一个弹窗,如下图

appium 浏览器打开网页,Appium,appium,自动化,智能手机

再通过inspector 工具定位上图的元素,然后编写代码,点击始终允许后,再把焦点切换到 CHROMIUM上

代码示例:

# 再点击 始终允许 的按钮
driver.find_element(By.XPATH,'//android.widget.Button[@text="始终允许"]').click()
time.sleep(3)
# 再切换到 CHROMIUM 的界面
driver.switch_to.context('CHROMIUM')

H5网页定位工具:

对于手机端H5网页来讲,不能使用之前的uiautomatorviewer,它主要针对android原生应用元素的信息定位。而Inspector定位工具也只能查看部分元素信息。一般常用如下两种方式进行元素识别:

方式一(推荐使用):利用谷歌浏览器F12开发者工具,切换到手机模式后再去识别

1、在电脑上谷歌浏览器输入待测网站

2、进入菜单--更多工具--开发者工具,点击toggle device toolbar,切换到手机模式

3、刷新网站,此时会切换到手机版网页模式,点击开发者工具左上角选择元素按钮,再到待测网页中去点击元素识别。

appium 浏览器打开网页,Appium,appium,自动化,智能手机

 代码示例:

# //网页识别  //标签名[属性名="属性值"]
driver.find_element(By.XPATH,'//input[@id="index-kw"]').send_keys('newdream')  # 在百度输入框输入值
time.sleep(2)
driver.find_element(By.XPATH,'//button[@id="index-bn"]').click()   # 点击 百度一下 按钮 

 方式二:

1、手机上安装Chrome浏览器,开启USB调试模式

2、在手机上,使用安装的Chrome浏览器打开待测H5页面

3、在电脑端的Chrome浏览器输入chrome://inspect

4、打开链接后,选中DiscoverUSBdevices(一般默认选中状态),可以看到监测到的设备,然后点击inspect,弹出页面后,就可以审查页面上的元素了备注:在第一次使用该工具时,由于远程调试需向google的一个链接:https://chrome-devtools-frontend.appspot.com获取数据,不翻墙打开后会是空白页面,需要VPN或翻墙后再次运行该工具即可正常使用。翻墙操作参考:https://www.cnblogs.com/YouJeffrey/p/15311131.html)

5、此时可以和方式一类似,点击选择元素按钮进行识别

appium 浏览器打开网页,Appium,appium,自动化,智能手机

 手机端H5网页本质上还是一个网页,如果之前应用过selenium,它的识别方法和selenium一致。主要的定位方法如下:

find_element_by_id:通过id查找

find_element_by_name:通过name查找

find_element_by_class_name:通过class查找

find_element_by_link_text:通过链接名称查找

find_element_by_partial_link_text:通过部分链接名称查找

find_element_by_css_selector:通过css查找

find_element_by_xpath:通过xpath查找

对于上述的方法不做详细介绍。

    文章来源地址https://www.toymoban.com/news/detail-805964.html

到了这里,关于Appium自动化(7):手机H5网页元素识别及操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • APP自动化测试(2)-通过appium打开手机的应用

    目录 一、appium的Capabilities配置及Appium Inspector安装 1.1安装Appium Inspector 1.2Capabilities配置 二、获取手机以及app的信息 2.1获取连接设计的配置名称 2.1.1连接手机 2.1.2获取设备名称  2.2利用adb获取日志找到appPackage和appActivity   三、Start Session 3.1 安装appium-doctor 3.2解决appium-doctor查出

    2024年02月08日
    浏览(53)
  • 全网最新最全的Appium自动化:使用appium后安卓手机无法调出键盘解决方法

    问题 :用appium进行真机调试后,使用手机的app进行输入时无法调出键盘。 原因 :appium调试时,将手机输入法设置成了Unicode IME 注:按键详细操作参考 :转载至 作者:oscarforever   地址:https://www.cnblogs.com/oscarforever/p/10721774.html 解决方法: 方法一,手机设置里修改输入法:

    2024年02月04日
    浏览(52)
  • Python与Appium实现手机APP自动化测试的示例代码

    本文主要介绍了Python与Appium实现手机APP自动化测试的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 appium是一个开源的测试自动化框架,可以与原生的、混合的和移动的web应用程序一直使用。它使用WebDriver协议驱动IOS(内

    2024年01月24日
    浏览(66)
  • python+Appium实现手机移动端自动化 - 模拟器 或 真机【有线】

    有线连接真机,实现真机自动化?实现模拟器自动化?在这里,都能满足你的需求! 什么都不说了,直接上干货吧,亲测可用哦👇 首先,先介绍下所需的环境,如下: JDK1.8 Appium Python3.x Android-sdk 夜深模拟器/mumu模拟器(PS: 自动化真机时可以选择不安装) 1)下载 方式1:官

    2024年02月16日
    浏览(47)
  • 『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?

    在了解元素等位前,我们先了解下 app 的一些类型,只有了解这些 app 的类型才能针对性的选择元素定位方法; 因为不同类型的app的定位方式可能存在差异性; 我们了解到 APP 可以分为原生 APP 、 Web APP 、混合 APP 。 而原生 APP 是基于 Android 或 iOS 平台官方的语言、类库、工具

    2024年02月03日
    浏览(52)
  • 『App自动化测试之Appium应用篇』| 元素定位工具uiautomatorviewer从简介、特点、启动到使用的完整过程

    之前文章说明了 Appium Inspector 的定位使用方法; uiautomatorviewer 是另一种定位工具; uiautomatorviewer 是 android-sdk 自带的元素定位工具; 它是通过截屏分析 XML 布局文件方式,来提供控件信息的查看服务。 uiautomatorviewer 和 Appium Inspector 有着明显的区别; Appium Inspector 功能相对比较

    2024年02月03日
    浏览(63)
  • 【selenium模块-WEB自动化】八大网页元素定位方法(三)

    一、id 定位 标签的 id 具有唯一性,就像人的身份证。 二、name 定位 name 指定标签的名称,在页面中可以不唯一。 三、class 定位 class 指定标签的类名,在页面中可以不唯一。 四、tag 定位 每个 tag 往往用来定义一类功能,所以通过 tag 来识别某个元素的成功率很低,每个页面

    2024年02月15日
    浏览(51)
  • Appium 自动化自学篇 —— 初识Appium自动化!

    随着移动终端的普及,手机应用越来越多,也越来越重要。而作为测试 的我们也要与时俱进,努力学习手机 App 的相关测试,文章将介绍手机自动化测试框架 Appium 。 那究竟什么是 Appium 呢? 接下来我们一起来学习Python+Selenium 做自动化测试。 (1) 什么是 Appium appium 是开源的移动

    2024年02月04日
    浏览(53)
  • Appium自动化(15) - 针对 webview 进行自动化测试

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! WebView是android中一个非常重要的控件 它的作用是用来展示一个web页面

    2024年04月10日
    浏览(56)
  • Appium 自动化测试

    1.Appium介绍 1,appium是开源的移动端自动化测试框架; 2,appium可以测试原生的、混合的、以及移动端的web项目; 3,appium可以测试ios,android应用(当然了,还有firefoxos); 4,appium是跨平台的,可以用在osx,windows以及linux桌面系统上; 2.Appium基本原理 在Android端,appium基于We

    2024年02月01日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包