appium定位WebView页面元素
使用AndroidDriver/IOSDriver对象的getContextHandles()方法得到所有上下文句柄,其中原生app的句柄会有"NATIVE_APP"字样,webview句柄会有"WEBVIEW"字样。
确定了webview句柄后,使用对象的context()方法进入webview,如果想返回原生app,使用context()方法,传入原生app句柄即可。
然后再通过定位方法定位元素。
安卓4.4之前,需要使用Selendroid,具体代码如下(摘自Appium API文档 https://testerhome.com/topics/3144):
1 //配置 webdriver 并启动 webview 应用。 2 DesiredCapabilities desiredCapabilities = new DesiredCapabilities(); 3 desiredCapabilities.setCapability("device", "Selendroid"); 4 desiredCapabilities.setCapability("app", "/path/to/some.apk"); 5 URL url = new URL("http://127.0.0.1:4723/wd/hub"); 6 RemoteWebDriver remoteWebDriver = new RemoteWebDriver(url, desiredCapabilities); 7 8 // 切换到最新的web视图 9 remoteWebDriver.switchTo().window("WEBVIEW"); 10 11 //在 guinea-pig 页面用 id 和 元素交互。 12 WebElement div = remoteWebDriver.findElement(By.id("i_am_an_id")); 13 Assert.assertEquals("I am a div", div.getText()); //验证得到的文本是否正确。 14 remoteWebDriver.findElement(By.id("comments")).sendKeys("My comment"); //填写评论。 15 16 //离开 webview,回到原生应用。 17 remoteWebDriver.switchTo().window("NATIVE_APP"); 18 19 //关闭应用。 20 remoteWebDriver.quit();
转载于:https://www.cnblogs.com/test-researcher/p/6676686.html
appium定位WebView页面元素相关推荐
- Appium 自动化测试 H5页面元素定位
简介 在现在的移动端App中,由于开发效率.需求频繁变更的需求情况下,经常有相关的运营需求,经常要进行更新,如果全部采用原生开发,需要的成本比较高,后来就出现了内嵌的H5页面.那么这些H5页面元素 ...
- python+selenium利用在线代码转换工具,批量定位百度页面元素https://www.sojson.com/jshtml.html(附操作步骤)
一.定位一组元素如下图 二.选择copy element复制页面元素 <div id="u1"><a href="http://news.baidu.c ...
- cypress之实现文件上传下载以及操作iframe下页面元素
前面讲解了使用cypress框架如何定位.操作页面元素以及校验测试结果,此次课程将介绍如何实现文件上传.操作iframe下面的页面原因以及操作shadow dom下的页面元素.为了完成此次课程目标,拆 ...
- Webview页面的控件元素定位
前言 现在有很多App都是Hybrid的,即有原生的页面又有Webview的页面,元素的可以通过uiautomatorviewer工具 进行控件元素的定位,Webview页面的则无法通过此方式定位,而 ...
- APP UI 自动化测试 H5页面元素定位
使用 uc-devtools 代替 uiautomatorviewer 查找定位H5元素 由于uiautomatorviewer 只能定位APP原生页面: 所以要定位app H5 页面内的元素 使用 ...
- Appium定位元素的几种方法总结
目录 前言 1. 通过id定位 2. 通过className定位 3. 通过AccessibilityId定位 4. 通过xpath定位 4.1 常规定位 4.2 contains模糊定位 4.3 组 ...
- appium定位元素java篇【转】
1.关于没有name,没有ID的元素的定位---通用篇 解题思路: 因为没有name,id:其实剩下的选择已不多,要么xpath,要么className.xpath木有好印象(稳定性不高,加之1.0x ...
- Appinum:在使用安卓模拟器定位页面元素时启动uiautomatorviewer.bat ,但是报错: Error while obtaining UI hierarchy XML file: c
在使用安卓模拟器定位页面元素时启动uiautomatorviewer.bat ,但是报错: Error while obtaining UI hierarchy XML file: com.andro ...
- css定位页面元素,页面元素定位-CSS元素基本定位
基本定位 """属性定位 一 """ # #通过id # driver.find_element_by_css_selector(" ...
最新文章
- mysql len s.number,mysql内置函数
- 【安全漏洞】简要分析复现了最近的ProxyShell利用链
- 我与Python网络爬虫的第一次接触
- DM9000调试记录
- 大疆无人机高程不准_大疆消费级无人机快速倾斜摄影测量实践
- java框架讲解ppt_经典框架spring介绍课件.ppt
- PHP商城数据库安全事务处理方法
- 6000字讲透!特适合产品新人的成长指南(附成长路径图)
- 谷歌在外贸中的实战解析
- 借助URLOS快速安装织梦cms
- 教你如何获得win7候选发布版序列号及下载
- WORD导出PDF生成书签
- 面经——华为联发科小米兆易创新(2020年秋招嵌入式软件)
- ps换背景操作,巨简单
- 留言赠书|GitHub收获1W星标《迁移学习导论》重新整理升级
- 关于三菱触摸屏GT Designer3 仿真软件创建工程
- KITTI数据集-百度云盘
- 【ML】_00_03_梯度下降
- iOS小知识:如何使用教育商店购买Apple M1 Max
- iPhone / iPad iOS 5.0.1完美 越狱 教程 A4/A5处理器
热门文章
- java 转xml 变成两根下划线_XStream实现xml和java对象之间的互相转换(包括对属性,别名,下划线_的处理),同理JSON也可以...
- 小米手机60帧录屏_手机录屏怎样只录手机内部声音不录入外部声音?教你三种方法,一定能帮到你...
- 无线抄表免费透传云服务器,两个WIFI模块USR-WIFI232-B2连接有人云实现远程一对一透传...
- mysql 重置更新祖级字段
- vue自定义指令封装节流_Vue自定义指令封装节流函数的方法示例
- matlab操作入门实验报告,matlab操作实验报告
- 浙江师范计算机考研怎么样,浙江师范大学考研难吗?一般要什么水平才可以进入?...
- python的特殊类_python - 类的特殊成员方法
- docker logs 日志原理
- Apache Flink 零基础入门(四)Flink开发批处理应用程序