当前位置: 首页 > news >正文

生物制药公司网站建设/中国十大电商公司排名

生物制药公司网站建设,中国十大电商公司排名,8上的信息课做网站作业,容易做的网站前言 难点?Appium工具的坑太多了,一上百度搜索就是一箩筐各种解决方案,且不同人不同环境,实则静下心来分析,无非就是环境问题和使用者对框架的思考问题!为什么这么说呢?例如:app混合…

前言

  难点?Appium工具的坑太多了,一上百度搜索就是一箩筐各种解决方案,且不同人不同环境,实则静下心来分析,无非就是环境问题和使用者对框架的思考问题!为什么这么说呢?例如:app混合h5的自动化,操作时需要切换context上下文,才能继续操作,且操作完h5还需要切换回原生环境;分析环境问题:如果不是chromedriver驱动版本和模拟器或者真机不匹配,就是操作元素的方法需要改进<即未等待元素出现操作无效>;同时我也相信搜索此类问题的同学,想必对操作页面元素的方法和各种显示等待也了然于胸,却不知为何偏偏总有些不尽人意的事情出现。So,一堆搜索的答案也不知道哪个是对的,唯有不断实战才能总结出自己的问题在哪里!

  再来说我的问题,问题有二:

  1、app混合应用H5操作返回<按钮无效?

  2、app原生跳转操作返回<按钮无效?excuse me!!!

  在工作环境就这两个问题调试就是好几个小时,仍旧无解?于是乎开始百度搜索,第一个问题有说是开发需要将app支持debug啥模式,才能正确定位h5的元素?我将信将疑,先将博客发给Android同学看看,然后自己在家再试试,结果是实现了混合应用app切换context操作。至于第二个问题,我相信不是问题,而是我对方法封装得不够优秀,从而可能导致元素无法正确操作!

  那么当元素无法正确工作的时候,我们该想什么办法来弥补呢?

  第一想到了模拟键盘返回操作,appium是在继承了selenium框架封装了一些特殊的方法,所以想到了back、按键等操作。

  下面开始分析下面的代码:

import time from appium import webdriver from appium.webdriver.common.mobileby import MobileBy desired_caps = { "platformName": "Android", "deviceName": "127.0.0.1:21503 device", # 设备名称 "platformVersion": "5.1.1", # android系统版本号 "appPackage": "com.chutzpah.yasibro.test", # app包名 "appActivity": "com.chutzpah.yasibro.main.view.MainActivity", # 启动launch Activity "noReset": True, # 重置缓存,第一次安装启动app 'automationName': 'Uiautomator2', # toast 必须用Uiautomator2 "chromedriverExecutableDir":r"C:\Users\Administrator\node_modules\appium\node_modules\appium-chromedriver\chromedriver\24" } driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps) time.sleep(15) # 启动时间等待,放长一点 print("还没点h5广告吗?") try: contexts=driver.contexts print("获取contexts上下文:%s" %contexts) print("我是原生点击<返回1") back_button1=(MobileBy.ANDROID_UIAUTOMATOR,'new UiSelector().className("android.widget.ImageView").instance(1)') driver.find_element(*back_button1).click() time.sleep(5) # 这个是原生定位元素的问题,没有操作正确 print("我是原生点击<返回2") back_button2=(MobileBy.ANDROID_UIAUTOMATOR,'new UiSelector().className("android.widget.ImageView").instance(1)') driver.find_element(*back_button2).click() time.sleep(5) # driver.switch_to.context(contexts[-1]) # print("切换后context是:%s" % driver.current_context) # print("我是webview点击<返回") # back_h5=(MobileBy.XPATH,"//*//div[@class='navigation_bar_left']") # driver.find_element(*back_h5).click() # driver.switch_to.context("NATIVE_APP") # time.sleep(5) # print("我是keyevent返回") # driver.keyevent(4) # back事件 code 4 # time.sleep(5) print("我是press_keycode返回") driver.press_keycode(4) time.sleep(5) # print("我是back返回") # driver.back() # time.sleep(5) # driver.switch_to.context("NATIVE_APP") exam_tab=(MobileBy.XPATH,"//android.widget.TextView[(@text='考试')]") driver.find_element(*exam_tab).click() time.sleep(5) except: raise finally: driver.close_app() driver.quit()

第一段返回操作的是原生<返回按钮,毋须切换上下文context,只要元素定位准确及操作正确,即可正常返回上一页面。

  第二段亦是如此!

  第三段是切换上下,先由contexts得到上线问列表<必须是点击了webview的控件之后获取,否则仍是native_app>,切记操作完h5之后,需要切换回原生环境:switch_to.context("NATIVE_APP");

  也可以通过点击webview控件之后,由current_context当前上下文环境判断是否H5环境!

  第四段是模拟设备键盘操作keyevent事件,百度有人说会容易报错。

  第五段同第四段,建议使用press_keycode()方法模拟设备键盘操作。

  第六段就是浏览器的返回操作,在app中不建议使用且不见的有效。

  至此,整个功能到此为止,按需索取!

http://www.lbrq.cn/news/1066951.html

相关文章:

  • 网站的营销方式有哪些/seo 专业
  • 济南网站建设公司哪个好/智谋网站优化公司
  • 网站左侧导航代码/网站域名购买
  • 网站怎么接入百度地图/凡科建站怎么建网站
  • 网站的设计原则/seo关键词优化举例
  • 中企动力网站价格/郑州官网网络营销外包
  • wordpress小工具不能完全显示/菏泽地网站seo
  • 禹城做网站的公司/深圳全网推广排名
  • 服务器怎么做看视频的网站/长春seo排名外包
  • 佛山网站建设佛山网络推广/seo与sem的区别
  • 怎么搭建自己的网站服务器/百度网盘帐号登录入口
  • 广州高端网站设计/疫情放开最新消息今天
  • 网站建设站点无法发布/百度网址大全网站大全
  • 返利淘客网站源码/平台推广方式方法是什么
  • 网站建设中网站需求分析和报告工能论文/网络营销模式下品牌推广研究
  • 效果图哪个网站好/杭州网络推广外包
  • 北京南站到北京站/巨量引擎官网
  • 网站里面的图片做桌面不清晰度/百度seo关键词优化电话
  • 刚注册在域名可以自己做网站吗/淘宝关键词查询
  • 鹿泉区城乡建设局网站/指数搜索
  • 提供网站建设报/优秀网页设计
  • 阿里云服务器做网站/网店网络推广方案
  • 网站商城建设/西安网红
  • 怎么做好网站推广/seo实战密码第四版pdf
  • 徐州做网站的公司招聘/seo关键词优化的技巧
  • 手机做车载mp3下载网站/黑帽seo寄生虫
  • 湘潭专业网站建设湘潭振企专业/互联网营销推广怎么做
  • 专业代做时时彩网站/百度网盘电话人工服务
  • 龙海市城乡规划建设局网站/营销方案范文
  • 上海模板网站/网络营销公司哪家可靠
  • 力扣面试150题--加一
  • JVM学习日记(十五)Day15——性能监控与调优(二)
  • 《深入浅出RabbitMQ:从零基础到面试通关》
  • 集成电路学习:什么是USB HID人机接口设备
  • Java基本技术讲解
  • 面经——电子电路技术知识详解