如何打开元素中的source元素窗口

新的获取APP元素定位方法的实践——不依赖GUI工具 - 简书
新的获取APP元素定位方法的实践——不依赖GUI工具
获取元素定位方式,是UI自动化测试过程中最重要的一步,如果无法获取有效的定位方式,其它操作将无从进行。通常在使用Appium框架进行自动化测试时,我们依赖GUI工具Appium Inspector、UIAutomatorViewer来获取元素属性,经过分析验证,从而得到正确的定位方式。使用GUI工具获取元素定位美好的想法安装Appium环境,并能正常运行demo;安装appium GUI客户端;使用Appium Inspector或者UIAutomatorViewer获取Android版本App元素属性;使用Appium Inspector获取IOS版本App 元素属性;分析元素属性,得到定位方式;将定位方式添加到测试脚本,运行测试。如果一切顺利,重复以上过程,元素定位自然不是问题。然而,理想很丰满,现实很骨感,过程往往是非常痛苦的。痛苦的过程(安装过程的痛处,不是本文重点,在这就不多说了)用Appium Inspector在真机上运行并定位元素的时候,不管App有没有安装,都会重新安装,而Appium安装启动App的过程是非常耗时的;使用Linux系统开发时,由于Appium Inspector无Linux版本,只能通过UIAutomatorViewer工具来获取Android页面元素属性,然而,有的元素就是那么任性:期望的属性都没有!想通过name和id定位是行不通了。
有的元素是有text和id属性的,不过中文汉字显示成了“?”
这样的话,需要先解决了这个编码问题。打开Appium Inspector,无奈报错“Could Not Launch Appium Inspector”,经过检查,app path以及关键参数已经设置,还是无法打开。所以想要通过Appium Inspector获取元素属性,只能上网搜索一番,先解决了这个问题。
在解决了Appium Inspector无法启动问题以及UIAutomatorViewer编码问题后,对于既没有name,也没有ID属性的元素,只能通过分析,得到xpath,添加进脚本试用,确认定位信息是否准确。而这时,就不可避免的遇到NoSuchElement错误。
如果通过分析元素属性得到的xpath无法准确定位,只能采用万能的page source方法,根据source继续分析,得到定位方式,再来验证。@propertydefpage_source(self):"""Gets the source of the current page.:Usage:driver.page_source"""returnself.execute(Command.GET_PAGE_SOURCE)['value']以上列举了一些使用GUI工具Appium Inspector和UIAutomatorViewer获取元素定位方法的一些问题,虽说问题都能一一被解决,但花费的时间以及不断重复获取精确定位的过程,让人不能忍,如果有人真不幸的一一遇到了,那么使用新的方法来获取定位方式,便迫在眉睫了。新方法的实践1、期望的获取方式在App指定的界面,解析页面并获取所有元素的定位方式对分析到的元素定位方式进行验证确认定位信息无误后添加进自动化脚本中2、解决思路配置Desired Capabilities,并启动Appium Server运行App并调整到指定界面通过source = driver.page_source获取页面source分析页面source,得到该页面所有元素的定位方法,可根据ID&name&text&xpath的顺序指定得到的定位元素方式,执行click操作,观察交互是否正确将正确的定位方式添加进测试脚本3、如何实现(主要代码)如何解析source
Android也是同样的思路,直接获取属性clickable为True的元素。对得到的定位方式进行验证
4、以demo为例说明打开app后界面
根据分析得到的定位方式
选择11,验证定位信息是否正确
执行click操作,跳转到buttons页面,说明定位信息准确,可添加进脚本
5、该方法解决的主要问题Appium Inspector以及UIAutimatorViewer工具,因环境问题带来的困扰;UIAutimatorViewer无法直接获取xpath的不足;获取定位方式后可以直接判断是否准确。6、该方法带来的几个主要问题以及改善以上是通过xpath得到的定位信息,可以根据需要进行修改,建议ID优先;对于无明显特征的定位信息,无法判断属于页面哪个元素,需要根据元素类型如button或者页面元素显示顺序,来猜测是哪个元素。如果能与开发约定元素id,相信获取元素定位,将事半功倍。小结以上主要根据使用工具获取元素定位方式的各种痛处,探索了一种新的获取元素定位的思路,希望能通过对该思路不断的优化、改进和完善,解决获取定位的烦恼,从而高效的完成自动化测试工作。本文作者:李吉兵(点融黑帮),现任点融网测试开发工程师,主要从事App自动化测试,测试框架以及工具开发工作。
点融黑帮——一个充满激情和梦想的技术团队,吸引了来自金融及信息科技领域的顶尖人才。我们正在用技术创新改变传统金融。(公众号:DianrongMafia)
Appium和它的设计思想 什么是Appium? 1、appium是开源的移动端自动化测试框架; 2、appium可以测试原生的、混合的、以及移动端的web项目; 3、appium可以测试ios,android应用(当然了,还有firefoxos); 4、appium是跨平...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金 相信有很多...
用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金Cover 有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? ... Android 获取 View 宽高的常用正确方式,避免为零 - 掘金相信有很多朋友...
要获取元素,首先要知道有哪些页面场景,那就先了解一下应用的三大分类: 此图为借用资源.png 1、Web APP Web App 指采用Html5语言写出的App,不需要下载安装。类似于现在所说的轻应用。生存在浏览器中的应用,基本上可以说是触屏版的网页应用。 2、 Hybr...
前言:本篇文章并非我的原创,而是翻译自英文原著。这里的每一句话我都仔细揣摩过并且加以实践,着实花了一些时间,在此记录只是想帮助更多的人。以下为正文: Appium Desktop是一款用于Mac、Windows和Linux的开源应用,它提供了Appium自动化服务器在一个漂...
云集品能相信吗?社交电商就是打“熟人牌”? 如今不仅仅是电商巨头开始布局社交电商,试图让社交连接起用户,增加用户的黏性,一些互联网和传统企业也纷纷开始试水,社交电商已经超乎了人们的预期发展,“社交+电商”正是云集品TPS商城的新电商模式。 当然,这样的模式也有人说是朋友圈经...
如约地开启了九月的光阴故事,我们昂扬奋进地重返校园,书写奋进路上又一段成长卷轴!九月一日,我们多数人守候在电视机前等候透过那扇小小窗户展现给我们的中国力量,今年,让我们握紧拳挺起胸高唱――中国骄傲! 这是一档节目,更是亿万中国少年儿童回顾与传承中华文化的一堂精美绝伦的课程,...
标签的属性 html 代码: //audio和video都可以通过JS获取对象,JS通过id获取video和audio的对象获取video对象 Media = document.getElementById(&media&); Media方法和属性: Media.error...
写在来北京一年的时候! 入职一周年的时候,整好公司发了新的短袖,回来增加了一下仪式感,让媳妇帮我拍照了! 标题写的有点大,和自己相处!不过这的确是我离开广州的时候唯一写的愿望! 社交恐惧患者,我经常这样子定义自己! 来北京一年干了好多事,比如结婚,比如小土豆快出生了,比如买...
雨落无声,花开无痕。
所谓时光,不过是手指间不断滑落的斑驳光影。握不住,挽不回,如一条奔流向东永不回头的河流,纵使感慨万千,也只能看着,无法阻挡分毫。
无法阻挡便不再执着。古人的智慧把故事凝结成一段段光阴的载体,藏于静默之中,穿越过无数花开雪落的时节,等待着被重新开启的...4,776被浏览176,330分享邀请回答developers.google.com/web/tools/chrome-devtools/97018 条评论分享收藏感谢收起69738 条评论分享收藏感谢收起在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
用python+selenium+firefox爬取网易云音乐指定音乐精彩评论,switch到iframe了,也可以定位到该元素,但是我打印driver.page_source却显示不全?
driver = webdriver.Firefox()
driver.maximize_window()
driver.set_page_load_timeout(10)
driver.get("http://music.163.com/#/song?id=")
except selenium.common.exceptions.TimeoutException:
print("time out of 10 s")
driver.execute_script('window.stop()')
print("休眠结束")
driver.switch_to.frame("contentFrame")
time.sleep(5)
print(driver.find_element_by_id('comment-box').text)
bsObj = BeautifulSoup(driver.page_source)
print(driver.page_source)
这时候能通过driver输出精彩评论:
这是输出的page_source的部分截图,可以看到在div id="comment-box"后并没有精彩评论的内容,这部分源码没有。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
#encoding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()#用的谷歌,到http://chromedriver.storage.googleapis.com/index.htm 下载
driver.maximize_window()
driver.set_page_load_timeout(10)
driver.get("http://music.163.com/#/song?id=")
except selenium.common.exceptions.TimeoutException:
print("time out of 10 s")
driver.execute_script('window.stop()')
print(u"休眠结束")
driver.switch_to.frame("contentFrame")
time.sleep(5)
print(driver.find_element_by_id('comment-box').text.encode('GBK', 'ignore'))
bsObj = BeautifulSoup(driver.page_source)
source = driver.page_source.encode('GBK', 'ignore')
open('163.txt','w').write(source)#163.txt文件可以看到精彩评论的
#print(driver.page_source.encode('GBK', 'ignore'))
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。随笔 - 851&
文章 - 11&评论 - 194&trackbacks - 0
原文地址:&http://www.cnblogs.com/liyunhua/p/4544738.html
之前有看过刘哇勇写的,让我觉得瞬间对chrome的了解实在太浅了。对此特意了解了一番(也就是在他的博文上进行了一些总结和了解一些其它chrome使用方面的诀窍),写了两篇博文
最近又学到了一些chrome的使用技巧,在此分享一下,大家不要说我是抄袭,我只是觉得工欲善其事,必先利其器。chrome在我心里就是神。
我只是很用心的写一下这篇文章,希望这些使用技巧对大家有用。
快速切换文件
我一般如果查找每个文件,一般都是打开控制台,在source控制面板里面一个一个去找,看下面的图你就应该知道,这么多文件,你都不知道在哪个目录下面,然后就只能一个一个点开看
后来才发现原来按Ctrl+P(cmd+p on mac),就能快速搜寻和打开你项目的文件。
在源代码中搜索
大家都知道如果在要在Elements查看源码,只要定位到Elements面板,然后按ctrl+f就可以了
可是如果你希望在源代码中搜索要怎么办呢?在页面已经加载的文件中搜寻一个特定的字符串,快捷键是Ctrl + Shift + F (Cmd + Opt + F),这种搜寻方式还支持正则表达式哦
在源代码中快速跳转到指定的行
大家都知道在VS里,一个cs文件可能特别多行,然后我们就是使用ctrl+g快捷键来跳转到特定的行,事实上在chrome控制台也是一样的,在Sources标签中打开一个文件之后,按Ctrl + G,(or Cmd + L for Mac),然后输入行号,chrome控制台就会跳转到你输入的行号所在的行。
使用多个插入符进行选择
当编辑一个文件的时候,你可以按住Ctrl在你要编辑的地方点击鼠标,可以设置多个插入符,这样可以一次在多个地方编辑
最近做用H5做携程商旅APP,用的最多的就是chrome浏览器的设备模式。试想一下,如果我们每在Visual studio工具上开发完一个功能又得跑到手机上调试,那得多烦,开发效率多低呀。想想就知道为什么那么多人喜欢用chrome浏览器。
设备传感仿真
设备模式的另一个很酷的功能是模拟移动设备的传感器,例如触摸屏幕和加速计。你甚至可以恶搞你的地理位置。这个功能位于元素标签的底部,点击&show drawer&按钮,就可看见Emulation&--& Sensors.
格式化凌乱的js源码
有时候看到压缩好的一团糟的js,都不知道从何着手去看。chrome控制台有内建的美化代码功能,可以返回一段最小化且格式易读的代码。Pretty Print的在Sources标签的左下角。
颜色选择器
当在样式编辑中选择了一个颜色属性时,你可以点击颜色预览,就会弹出一个颜色选择器。当选择器开启时,如果你停留在页面,鼠标指针会变成一个放大镜,让你去选择像素精度的颜色。
改变颜色格式
相信前端开发人员都知道,颜色有很多种表示方式,比如rgb,hsl,十六进制表示方法等。看了下面的这个图,我相信你肯定会佩服chrome的功能强大,连细节都做得那么好。
在颜色预览功能使用快捷键Shift + Click,可以在rgba、hsl和hexadecimal来回切换颜色的格式
强制改变元素状态(方便查看不同状态下元素的样式)
chrome控制台有一个可以模拟CSS状态的功能,例如元素的hover和focus,可以很容易的改变元素样式。在CSS编辑器中可以利用这个功能查看不同状态下元素的样式,我相信这个功能对于模仿别人界面的前端爱好者来说是非常实用的。
利用chrome来查看和编辑本地文件
事实上我们可以用chrome来查看本地文件,只要把相关目录拖到chrome浏览器中即可。
选择下一个匹配项
当在Sources下编辑文件时,按下Ctrl + D (Cmd + D) ,当前选中的单词的下一个匹配也会被选中,有利于你同时对它们进行编辑。
可视化的DOM阴影
eb浏览器在构建如文本框、和输入框一类元素时,其它基本元素的视图是隐藏的。不过,你可以在Settings -& General&中切换成Show user agent shadow DOM,这样就会在元素标签页中显示被隐藏的代码。甚至还能单独设计他们的样式,这给你了很大的控制权。
这点特性在我的另一篇博文中有提到,当时遇到问题时找了半天才发现原因,如果早点能知道chrome的这个特性,我相信必定会节省不少时间。
阅读(...) 评论()

我要回帖

更多关于 360怎么打开审查元素 的文章

 

随机推荐