python3+Appium自动化13-H5元素定位实践案例
测试场景
启动钉钉app进入工作H5页面,点击考勤签到
查看webview上元素
1.电脑上打开chrome浏览器输入:chrome://inspect/#devices
2.Discover USB devices这个要勾选的,可以检查到手机设备
3.Discover network targets 这个勾选,检查到网络
4.下图箭头指向的,是手机的设备名称
5.Webview in com.alibaba.android.rimet(39.0.00)这个是手机上浏览器的内核版本号39
(一般电脑上的chrome版本号最好要大于等于这个版本号)


1.上图红色框框的两个地址就是加载到的webview的网页地址了,点地址下的inspect按钮,进入调试界面
(当然没有梯子爬的同学,打开是一片空白的,你懂得)
2.不会爬梯子的也没关系,把对应的url地址复制出来,重新打开一个浏览器标签,输入地址后,按F12也可以进调试界面。
3.接下来的元素定位就跟selenium的定位是一回事了。
代码实践:
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
import time
desired_caps = {
#android的apk
'platformName': 'Android',
#手机设备名称
'deviceName': '127.0.0.1:21503',
#android系统的版本号
'platformVersion': '5.1.1',
# 'deviceName': 'ceshi',
# 'platformVersion': '7.0',
# 'udid':'83f04b4b5338424e', # 'app':r'C:\Users\bzART\Desktop\app-artmall-release.apk',
# apk包名
'appPackage': 'com.alibaba.android.rimet',
# apk的launcherActivity
'appActivity': 'biz.home.activity.HomeActivity',
#默认neReset为false,不要在会话前重置应用状态,每次启动都跟第一次启动一样,变为true则不一样
'noReset':'True',
#下面两行代码是为了屏蔽软件盘以至于可以输入中文
'unicodeKeyboard':True,#使用unicode编码方式发送字符串
'resetKeyboard':True#将键盘隐藏起来
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
WebDriverWait(driver,8).until(lambda x:x.find_element_by_id('com.alibaba.android.rimet:id/home_bottom_tab_button_work'))
driver.find_element_by_id('com.alibaba.android.rimet:id/home_bottom_tab_button_work').click() WebDriverWait(driver,8).until(lambda x:x.find_element_by_class_name('android.webkit.WebView'))
#获取所有的环境
contexts=driver.contexts
print(contexts)
time.sleep(10)
#切换到webview
driver.switch_to.context('WEBVIEW_com.alibaba.android.rimet')
#获取当前的环境,看是否切换成功
print(driver.current_context) time.sleep(20)
#点击考勤签到
driver.find_element_by_xpath('//*[@id="dingapp"]/div/div[4]/div[1]/div[2]/div/div[3]/div/div[2]/p').click() #切换回native
driver.switch_to.context("NATIVE_APP")
# driver.switch_to.context(contexts[0])
python3+Appium自动化13-H5元素定位实践案例的更多相关文章
- python+Appium自动化:H5元素定位
问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...
- appium自动化测试之UIautomatorviewer元素定位
appium自动化测试之UIautomatorviewer元素定位 标签(空格分隔): uiautomatorviewer元素定位 前面的章节,已经总结了怎么搭建环境,怎样成功启动一个APP了,这里具 ...
- python+Appium自动化:id元素定位
元素定位 与web自动化一样,app自动化元素定位也是非常重要的一环,,appium也是提供了很多元素定位的方法,比如:id.name.class.层级定位等等. 元素定位方式 id name cla ...
- python+Appium自动化:各种元素定位方法
name定位 driver.find_element_by_name('飞利浦净水').click() 测试结果报错:selenium.common.exceptions.InvalidSelecto ...
- python3+Appium自动化09-Capability配置数据分离实践
代码实现 参数配置表:desired_caps.yaml platformName: Android deviceName: 192.168.175.101:5555 platformVersion: ...
- 混合元素app的H5元素定位
问题思考 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 解决思路 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原 ...
- 5、通过Appium Desktop实现页面元素定位
之前我们已经安装了Appium Desktop,下面就让我们使用Appium Desktop实现页面元素定位 1.首先我们打开Appium Desktop,进入如下界面,点击Start Server ...
- python3+Appium自动化12-H5元素定位环境搭建
前言 在混合开发的App中,经常会有内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢? 针对这种场景直接使用前面所讲的方法来进行定位是行不通的,因为前面的都是基于Andriod原生控件进行元素 ...
- 『与善仁』Appium基础 — 17、元素定位工具(一)
目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...
随机推荐
- appium自动化安装(一)
1.首先去 https://github.com/ 了解一下appium一些相关信息 2.安装node.js:node.js官方网站:https://nodejs.org/ 安装完成,打开Wind ...
- ecto使用
- c语言判断是否是utf8字符串,计算字符个数
#include <stdio.h> #include <string.h> #include <stdlib.h> /********************** ...
- 手机APP测试
注:以下内容来自网络: 一.手机APP测试类型 1.1 接口协议测试 在APP客户端开发设计时,一般服务端会提供相应的接口协议文档,接口协议文档的质量,决定了APP的开发进度.此部分的测试,应首先检测 ...
- 算法训练 Pollution Solution(计算几何)
问题描述 作为水污染管理部门的一名雇员,你需要监控那些被有意无意倒入河流.湖泊和海洋的污染物.你的其中一项工作就是估计污染物对不同的水生态系统(珊瑚礁.产卵地等等)造成的影响. 你计算所使用的模型已经 ...
- sort排序bug乱序
项目需要对组件的zIndex值进行降序排列,刚开始采用的是sort进行排序,排完之后感觉没问题,毕竟也是经常用的,可是昨天无意中把zIndex值打出来看,一看不知道,发现只要排序的组件超过10个就出问 ...
- slice()、substring()、substr()的区别用法
在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...
- Hyperledger Fabric java chaincode 编译部署(1.4V)
前提条件: 构建好了一个拥有四个peer 一个Order 的1.4版本的Fabric网络. 证书通过Cryptogen生成,没有使用CA服务. 开启TLS. 网络中的peer都加入了一个 名为mych ...
- luogu P3811线性求逆元
首先扩O:T了一个点(因为上界松),83分. #include <cstdio> using namespace std; int n, p; void exgcd(int a, int ...
- 配置IIS使用Python 与常见问题解决
打开IIS管理器 选择功能视图,然后选择ISAPI和CGI限制 打开后,在右侧操作,点击添加,会出现下图所示 按图中提示填写相应部分,在选择路径时,默认可能是dll文件,改成全部文件即可,然后再选择p ...