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

自己做的网站打开慢虚拟机下载

自己做的网站打开慢,虚拟机下载,网站 布局,软件开发行业市场分析在日常使用App过程中#xff0c;经常会看到App界面有一些弹窗提示#xff08;如下图所示#xff09;这些提示元素出现后等待3秒左右就会自动消失#xff0c;那么我们该如何获取这些元素文字内容呢#xff1f; Toast简介 Android中的Toast是一种简易的消息提示框。 当视图…在日常使用App过程中经常会看到App界面有一些弹窗提示如下图所示这些提示元素出现后等待3秒左右就会自动消失那么我们该如何获取这些元素文字内容呢 Toast简介 Android中的Toast是一种简易的消息提示框。 当视图显示给用户在应用程序中显示为浮动。和Dialog不一样的是它永远不会获得焦点无法被点击。 Toast类的思想就是尽可能不引人注意同时还向用户显示信息希望他们看到。而且Toast显示的时间有限一般3秒左右就消失了。因此使用传统的元素定位工具我们是无法定位到Toast元素的传说中低调奢华有内涵。 Appium Toast内容获取 Add ability to verify TOAST messages (these cant be interacted with, only text retrieval allowed) 1.Appium 1.6.3开始支持识别Toast内容主要是基于UiAutomator2因此需要在Capablity配置如下参数 automationName:uiautomator2 或者 desired_caps[automationName]uiautomator2 2.安装appium-uiautomator2-driver: 安装命令如下 cnpm install appium-uiautomator2-driver 安装成功后可以在 C:\Users\Administrator\node_modules看到对应的文件 _appium-uiautomator2-driver1.12.0appium-uiautomator2-driver _appium-uiautomator2-server1.10.0appium-uiautomator2-server 测试环境 1.系统环境是Windows 10版本 64位系统 2.jdk版本1.8.0_181 3.appium版本1.4.16  经查询appium1.6.3以上才能识别toast之前安装appium版本是1.4.X,于是重整了测试环境 官方文档是这么说的 Firstly you should install appium server. Appium getting started. The version 1.6.3 or greater is recommended. Since version 5.x there many features based on Java 8. So we recommend to install JDK SE 8 and provide that source compatibility. 也就是更新appium 到1.6.3以上java-client版本最好是5.xjdk要用1.8、selenium要用3.x其他版本不一定兼容要自己亲测是否可用 想识别toast官网是这么说因此为了不必要的麻烦折腾环境最好还是卸载低版本的appium然后安装版本高于1.6.3的appium。 appium有两种安装方式看你的需要选择方法一或方法二 方法一 使用下载地址https://bitbucket.org/appium/appium.app/downloads/可以下载exe应用桌面程序更适合新手界面设置更容易上手但是目前appium已经更新1.6.3以上下载地址还没更新最新的上去。如果不使用UIAUTOMATOR2等appium提供的新功能不需要下载比较新的ppium, 方法二 已安装了node.js可以使用npm命令安装appium打开cmd,输入npm install -g appium回车即可开始安装目前最新的版本速度会比较慢毕竟是国外的如果不安装最新的使用命令npm install -g appiumxxxxxx是版本号如下载appium1.6.3命令为npm install -g appium1.7.0我是一开始使用方法一之后发现几个功能appium要更新到1.6.3以上才支持所以我目前版本更新到了1.6.3以上。   4.selenium3.141.0 安装selenium 输入指令pip install selenium 验证安装成功pip show selenium 5.测试设备Android 5.1.1 (不能低于5.0版本) 6.Python3.7.2 命令python -V  回车即可。 7.测试App考研帮Android app V3.1.0 8.测试场景 进入登录界面输入错误的用户名或者密码获取Toast内容 “用户名或密码错误你还可以尝试4次” “验证失败次数过多请15分钟后再试” 代码实现 步骤一初始化 在capability配置内部增加desired_caps[‘uiautomationName’]’ uiautomator2’ 步骤二定位toast元素 1定义toast文本内容 2定义路径 3组合文本内容和路径进行定位用format连接路径和文本内容 参考代码 11 from appium import webdriver 12 from selenium.common.exceptions import NoSuchElementException 13 from selenium.webdriver.support.ui import WebDriverWait 14 from selenium.webdriver.support import expected_conditions as EC 15 16 desired_caps {platformName: Android, 17 platforVersion: 5.1.1, 18 automationName: Uiautomator2, 19 deviceName: 127.0.0.1:62001, 20 app: rC:\Users\DELL\Downloads\kaoyanbang.apk, 21 appPackage: com.tal.kaoyan, 22 appActivity: com.tal.kaoyan.ui.activity.SplashActivity, 23 noReset: True} 24 25 driver webdriver.Remote(http://localhost:4723/wd/hub, desired_caps) 26 driver.implicitly_wait(9) 27 try: 28 driver.find_element_by_id(android:id/button2).click() 29 except NoSuchElementException: 30 print(1) 31 try: 32 driver.find_element_by_id(com.tal.kaoyan:id/tv_skip).click() 33 except NoSuchElementException: 34 print(2) 35 driver.find_element_by_id(com.tal.kaoyan:id/login_email_edittext).clear() 36 driver.find_element_by_id(com.tal.kaoyan:id/login_email_edittext).send_keys(bjhongge) 37 38 driver.find_element_by_id(com.tal.kaoyan:id/login_password_edittext).send_keys(1213213) 39 driver.find_element_by_id(com.tal.kaoyan:id/login_login_btn).click() 40 41 error_message 用户名或密码错误你还可以尝试3次 42 limit_message 验证失败次数过多请15分钟后再试 43 44 message //*[text\{}\].format(error_message) 45 #message//*[text\{}\].format(limit_message) 46 47 toast_element WebDriverWait(driver, 15).until(lambda x:x.find_element_by_xpath(message)) 48 print(toast_element.text) 说明 连接不同的类型的变量或内容format 显示等待webdriverdriver5 driver是webdriver的驱动程序5是超时时间以秒为单位 WebDriverWait()一般由 until()或 until_not()方法配合使用下面是 until()和 until_not()方法的说明。 until(method, message’’) 调用该方法提供的驱动程序作为一个参数直到返回值不为 False。 until_not(method, message’’) 调用该方法提供的驱动程序作为一个参数直到返回值为 False。   动态函数lambda xx5   X是函数的参数冒号后面是函数的返回值 封装toast判断 1.单独写一个函数来封装判断是否存在toast消息存在返回True,不存在返回False 1 def is_toast_exist(driver,text,timeout30,poll_frequency0.5):2 3 is toast exist, return True or False4 5 :Agrs:6 7 - driver - 传driver8 9 - text - 页面上看到的文本内容 10 11 - timeout - 最大超时时间默认30s 12 13 - poll_frequency - 间隔查询时间默认0.5s查询一次 14 15 :Usage: 16 17 is_toast_exist(driver, 看到的内容) 18 19 20 21 try: 22 23 toast_loc (xpath, .//*[contains(text,%s)]%text) 24 25 WebDriverWait(driver, timeout, poll_frequency).until(EC.presence_of_element_located(toast_loc)) 26 27 return True 28 29 except: 30 31 return False 封装后参考代码 11 from appium import webdriver 12 from selenium.common.exceptions import NoSuchElementException 13 from selenium.webdriver.support.ui import WebDriverWait 14 from selenium.webdriver.support import expected_conditions as EC 15 16 desired_caps {platformName: Android, 17 platforVersion: 5.1.1, 18 automationName: Uiautomator2, 19 deviceName: 127.0.0.1:62001, 20 app: rC:\Users\DELL\Downloads\kaoyanbang.apk, 21 appPackage: com.tal.kaoyan, 22 appActivity: com.tal.kaoyan.ui.activity.SplashActivity, 23 noReset: True} 24 25 def is_toast_exist(driver,text,timeout30,poll_frequency0.5): 26 27 is toast exist, return True or False 28 29 :Agrs: 30 31 - driver - 传driver 32 33 - text - 页面上看到的文本内容 34 35 - timeout - 最大超时时间默认30s 36 37 - poll_frequency - 间隔查询时间默认0.5s查询一次 38 39 :Usage: 40 41 is_toast_exist(driver, 看到的内容) 42 43 44 45 try: 46 47 toast_loc (xpath, .//*[contains(text,%s)]%text) 48 49 WebDriverWait(driver, timeout, poll_frequency).until(EC.presence_of_element_located(toast_loc)) 50 51 return True 52 53 except: 54 55 return False 56 if __name__ __main__: 57 58 driver webdriver.Remote(http://localhost:4723/wd/hub, desired_caps) 59 driver.implicitly_wait(9) 60 try: 61 driver.find_element_by_id(android:id/button2).click() 62 except NoSuchElementException: 63 print(1) 64 try: 65 driver.find_element_by_id(com.tal.kaoyan:id/tv_skip).click() 66 except NoSuchElementException: 67 print(2) 68 driver.find_element_by_id(com.tal.kaoyan:id/login_email_edittext).clear() 69 driver.find_element_by_id(com.tal.kaoyan:id/login_email_edittext).send_keys(bjhongge) 70 71 driver.find_element_by_id(com.tal.kaoyan:id/login_password_edittext).send_keys(1213213) 72 driver.find_element_by_id(com.tal.kaoyan:id/login_login_btn).click() 73 74 error_message 用户名或密码错误你还可以尝试3次 75 limit_message 验证失败次数过多请15分钟后再试 76 77 print is_toast_exist(driver, error_message) 梳理 1.注意Toast内容为中文时顶部必须注释# codingutf-8 否则会因为编解码导致文字识别失败。 2. 用npm安装appium-uiautomator2-driver 会出现错误卡顿之后安装不成功。 解决办法 1首先执行这个命令 npm install -g cnpm --registryhttps://registry.npm.taobao.org       安装cnpm完成后如下图 2然后通过这个命令 cnpm install appium-uiautomator2-driver   安装uiautomator2的配置文件如图 3.cnpm与npm的区别 1npm介绍 说明npmnode package manager是nodejs的包管理器用于node插件管理包括安装、卸载、管理依赖等  2使用npm安装插件命令提示符执行npm install [-g] [–save-dev]  node插件名称。  例npm install gulp-less –save-dev  -g全局安装。  将会安装在C:\Users\Administrator\AppData\Roaming\npm并且写入系统环境变量 非全局安装将会安装在当前定位目录 全局安装可以通过命令行在任何地方调用它本地安装将安装在定位目录的node_modules文件夹下通过require()调用 –save将保存配置信息至package.jsonpackage.json是nodejs项目配置文件 -dev保存至package.json的devDependencies节点不指定-dev将保存至dependencies节点 为什么要保存至package.json因为node插件包相对来说非常庞大所以不加入版本管理将配置信息写入package.json并将其加入版本管理其他开发者对应下载即可命令提示符执行npm install则会根据package.json下载所有需要的包。  3使用npm卸载插件npm uninstall [-g] [–save-dev]  PS不要直接删除本地插件包  4使用npm更新插件npm update [-g] [–save-dev]  5更新全部插件npm update [–save-dev]  6查看npm帮助npm help  7查看当前目录已安装插件npm list PSnpm安装插件过程从http://registry.npmjs.org下载对应的插件包该网站服务器位于国外所以经常下载缓慢或出现异常 解决办法 选装cnpm 说明因为npm安装插件是从国外服务器下载受网络影响大可能出现异常如果npm的服务器在中国就好了所以我们乐于分享的淘宝团队干了这事。来自官网“这是一个完整 npmjs.org 镜像你可以用此代替官方版本(只读)同步频率目前为 10分钟 一次以保证尽量与官方服务同步。”  官方网址http://npm.taobao.org  安装命令提示符执行npm install cnpm -g –registryhttps://registry.npm.taobao.org  注意安装完后最好查看其版本号cnpm -v或关闭命令提示符重新打开安装完直接使用有可能会出现错误  注cnpm跟npm用法完全一致只是在执行命令时将npm改为cnpm。
http://www.zqtcl.cn/news/858160/

相关文章:

  • 推广自己的网站需要怎么做wordpress 正计时
  • 做网站工资怎么样织梦的官方网站
  • python制作视频网站开发互动网站建设公司
  • 网站软文代写广西网站设计公司排行榜
  • c2c网站代表和网址mirages WordPress
  • 网站建设开发案例教程wordpress中国区官方论坛
  • 王晴儿网站建设做啊录音网站
  • 网站开发版本号正规的企业网站建设公司
  • 中国做网站正邦温州网站建设方案服务
  • 南通网站关键词优化wordpress做小程序
  • 上海企业网站seo多少钱做网站图片链接到天猫
  • 属于教育主管部门建设的专题资源网站是广西壮锦网站建设策划书
  • 云南网站制作一条龙网站建设公司对比分析报告
  • 手机网站客户端网站语言有几种
  • 做网站怎么选取关键词中企动力销售陪酒多吗
  • 新网站做内链雅虎网站收录提交入口
  • 简述建设一个网站的具体过程接做名片的网站
  • 怎样建立自己网站网站产品数据如何恢复
  • 用wordpress建立电商网站用Off做网站
  • 网站建设公司不赚钱ui设计软件培训学校
  • 网站项目策划书模板wordpress修改模版
  • 房地产手机网站模板电脑建立网站
  • 网站自适应手机代码网络服务机构的网站
  • 系统网站重庆智能建站模板
  • wordpress适合优化吗宝塔 wordpress优化
  • 怎么利用网站做外链接怎样做公司网站介绍
  • 广州网站优化渠道木门网站模板
  • 手机网站菜单设计wordpress加联系方式
  • 网站管理助手怎么使用多种郑州网站建设
  • 汉中网站建设费用外贸网站服务商