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

基于Docker+模拟器的Appium自动化测试(二)

模拟器的设置

        打开“夜神模拟器”的系统设置,切换到“手机与网络”页,选中网络设置下的“开启网络连接”和“开启网络桥接模式”复选框,而后选择“静态IP”单选框,在IP地址中输入“192.168.0.105”,网关等内容不再赘述,请参见图8-210。

图8-210  “夜神模拟器”的系统设置配置项内容

       使用“adb connect 127.0.0.1:62001”连接到设备,而后应用“adb –s 127.0.0.1:62001 tcpip 9000”命令,设置模拟器的连接方式为tcpip方式并指定使用端口为9000,如图8-211所示。

图8-211  设置模拟器tcpip连接方式

容器连接模拟器

        切换到CentOS虚拟机,使用“docker exec –it appium1 adb connect 192.168.0.105:9000”连接夜神模拟器,再使用“docker exec –it appium1 adb devices”命令来查看设备情况,若出现“192.168.0.105:9000    device”信息,则表明连接成功,如图8-212所示。

图8-212  容器连接模拟器相关命令

        输入“docker inspect --format='{{.NetworkSettings.IPAddress}}'  appium1”命令来查看appium1容器的IP地址,其IP地址为“172.17.0.2”,如图8-213所示。

图8-213  appium1容器IP地址

测试脚本

from appium import webdriver
import time
import threading

caps1 = {
    'platformName': 'Android',
    'deviceName': '192.168.0.105:9000',
    'platformVersion': '5.1.1',
    'appPackage': 'com.microsoft.bing',
    'appActivity': 'com.microsoft.clients.bing.app.MainActivity'
}

if __name__ == '__main__':
    driver = webdriver.Remote('http://172.17.0.2:4723/wd/hub', caps1)
    #
单击跳过按钮
    driver.find_element_by_id('com.microsoft.bing:id/skip_text').click()
    #
等待1秒钟,目的让后续元素能够显示出来再操作
    time.sleep(1)
    #
单击搜索框
    driver.find_element_by_id('com.microsoft.bing:id/search_box').click()
    #
等待1秒钟,目的让后续元素能够显示出来再操作
    time.sleep(1)
    #
向搜索文本框输入查询的搜索词内容
    driver.find_element_by_id('com.microsoft.bing:id/search_text_field').send_keys('Appium')
    #
单击“全部”按钮
    driver.find_element_by_id('com.microsoft.bing:id/opal_as_web').click()

测试执行

        运行结果如图8-214所示。

图8-214  应用appium docker容器脚本执行结果

   

相关文章:

基于Docker+模拟器的Appium自动化测试(二)

模拟器的设置 打开“夜神模拟器”的系统设置,切换到“手机与网络”页,选中网络设置下的“开启网络连接”和“开启网络桥接模式”复选框,而后选择“静态IP”单选框,在IP地址中输入“192.168.0.105”,网关等内容不再赘述…...

数据结构之线性表之链表(附加一个考研题)

链表的定义 链表的结构: 单链表-初始化 代码实现: 单链表-头插法 代码实现: 这里我给大家分析一下 我们每创建一个新的节点都要插在头节点的后面,我们一定要注意顺序 一定要先让新节点指向头节点指向的下一个节点,…...

etmem

title: 聚焦 Etmem:高效内存管理的新引擎 date: ‘2024-12-31’ category: blog tags: Etmem内存管理性能优化系统资源 sig: storage archives: ‘2024-12’ author:way_back summary: Etmem 是一款专注于内存管理优化的创新工具,通过智能的内存分配、回…...

LangChain4j与Elasticsearch:构建高效的语义嵌入存储

LangChain4j与Elasticsearch:构建高效的语义嵌入存储 一、LangChain4j与Elasticsearch集成概述 1.1 LangChain4j简介 LangChain4j是一个为Java开发者设计的开源库,旨在简化大型语言模型(LLM)在Java应用程序中的集成。它提供了与…...

黄河小浪底水利枢纽泄洪预警广播系统正式上线

24小时站岗、危险自动报警、远程喊话驱离……近日,小浪底水利枢纽和西霞院水利枢纽的泄洪预警广播系统正式上线,通过数字化设施赋能管控水域日常监管,将危险水域各个角落“尽收眼底”,涉水危险行为“无处可藏”。 “前方船只请注意…...

理解生成协同促进?华为诺亚提出ILLUME,15M数据实现多模态理解生成一体化

多模态理解与生成一体化模型,致力于将视觉理解与生成能力融入同一框架,不仅推动了任务协同与泛化能力的突破,更重要的是,它代表着对类人智能(AGI)的一种深层探索。通过在单一模型中统一理解与生成&#xff…...

[文献阅读]ReAct: Synergizing Reasoning and Acting in Language Models

文章目录 摘要Abstract:思考与行为协同化Reason(Chain of thought)ReAct ReAct如何协同推理 响应Action(动作空间)协同推理 结果总结 摘要 ReAct: Synergizing Reasoning and Acting in Language Models [2210.03629] ReAct: Synergizing Reasoning an…...

摄像头监视脚本

摄像头监视脚本,若检测到摄像头画面有变化,保存这一段视频 一、使用方法 1.运行脚本 默认参数Threshold3, Period3, path./recordings python cam.py --threshold30 --period3 --path./recordings 2.参数说明 threshold:摄像头捕获到的画面变化量阈值…...

FreeRTOS的内存管理(选择heap4.c文件的理由)

目录 1. 了解FreeRTOS内存管理 2. 了解内存碎片 3.了解各个heap.c的内存分配方法 1.heap1.c 2.heap2.c 3.heap3.c 4.heap4.c 5.heap5.c 总结: 内存管理是一个系统基本组成部分,FreeRTOS 中大量使用到了内存管理,比如创建任务、信号量…...

SQL-leetcode-183. 从不订购的客户

183. 从不订购的客户 Customers 表: -------------------- | Column Name | Type | -------------------- | id | int | | name | varchar | -------------------- 在 SQL 中,id 是该表的主键。 该表的每一行都表示客户的 ID 和名称。 Orders 表&#…...

苹果系统MacOS下ObjectC建立的App程序访问opencv加载图片程序

前言 苹果系统下使用opencv感觉还是有些不太方便,总是感觉有点受到限制。本博客描述的是在MacOS下建立App程序然后调用opencv显示图片时出现的一些问题并最后解决的一个过程。 一、程序的建立 选择程序的类型: 选择界面模式和编程语言: 其余…...

《代码随想录》Day21打卡!

写在前面:祝大家新年快乐!!!2025年快乐,2024年拜拜~~~ 《代码随想录》二叉树:修剪二叉搜索树 本题的完整题目如下: 本题的完整思路如下: 1.本题使用递归进行求解,所以分…...

Dell服务器升级ubuntu 22.04失败解决

ubuntu系统原版本20.04,服务器dell T40. 执行apt update后,再执行apt upgrade。 apt update执行成功,但apt upgrade执行中断,提示如下: Checking package manager Reading package lists... Done Building dependen…...

构建全志 T113 Tina SDK

1、环境配置: 准备一个 Ubuntu 系统,可以是 WSL,虚拟机等,建议版本是 20.04。 1.1、安装必要的软件 进入系统后,输入下方命令安装需要的工具 : sudo apt update -y sudo apt full-upgrade -y sudo apt i…...

(推荐)【通用业务分发架构】1.业务分发 2.rpc调用 3.Event事件系统

一.Reflections和SpringUtil完成扫描包的(反射缓存) 二.id与class的映射泛型上下文(玩家是否登录,rpc调用SeqId,class类名)反射调用 1.netty层的 AccountMsgParam // 登录前 OnlineMsgParam // 登录后 SceneMsgParam // 发到场景层的 2.跨进程rpc调用的…...

最近的一些事情

正义不会缺席 这家公司违法辞退不给工资乱开离职证明。严重影响个人发展。 今天终于收到法院的判决书。 警醒自身发展与社会之间密切交流,敲响警钟。 虽然最终得到的法院的支持,但过程举步维艰。 这其中的过程,也让我对律师、法院和中国…...

CP AUTOSAR标准之FlexRayDriver(AUTOSAR_SWS_FlexRayDriver)(更新中……)

1 简介和功能概述 FlexRay驱动程序(Fr)抽象了特定FlexRay通信控制器(CC)的硬件相关实现细节。本规范主要依赖于符合FlexRay规范[13]的FlexRay CC。此外,本规范还支持符合FlexRay规范[14]的旧版FlexRay控制器。本SWS中因支持的FlexRay规范不同而导致的不同行为在适用的情况下以…...

Cesium 实战 27 - 三维视频融合(视频投影)

Cesium 实战 27 - 三维视频融合(视频投影) 核心代码完整代码在线示例在 Cesium 中有几种展示视频的方式,比如墙体使用视频材质,还有地面多边形使用视频材质,都可以实现视频功能。 但是随着摄像头和无人机的流行,需要视频和场景深度融合,简单的实现方式则不能满足需求。…...

GraphRAG实践:docker部署neo4j

概述 随着图数据库(Graph Database)的流行,越来越多的应用场景开始采用图数据库来处理复杂的关系数据。Neo4j作为领先的图数据库之一,提供了强大的图形查询语言Cypher、高效的存储结构和丰富的生态系统,使得它成为开发…...

常用的数据库类型都有哪些

在Java开发和信息系统架构中,数据库扮演着存储和管理数据的关键角色。数据库种类繁多,各有特色,适用于不同的应用场景。 1. 关系型数据库(RDBMS): • 关系型数据库是最为人熟知的数据库类型,数据…...

ai辅助开发:为openclawskills网站打造智能个性化教程推荐引擎

最近在帮朋友优化他的技能学习网站openclawskills,想给用户增加个性化推荐功能。作为一个独立开发者,借助InsCode(快马)平台的AI辅助开发能力,整个过程比想象中顺利很多。记录下这个智能推荐系统的实现思路,或许对其他想做类似功能…...

Spring AI聊天记录丢了怎么办?手把手教你用Redis实现ChatMemory持久化(附完整代码)

Spring AI聊天记录持久化实战:Redis解决方案与工程实践 在构建智能对话系统时,聊天记录的持久化是一个经常被忽视却至关重要的环节。想象一下这样的场景:用户昨天与你的客服机器人进行了长达30分钟的咨询,今天再次访问时却发现系统…...

动态权限渲染:前后端RBAC个人项目经验分享

从后端权限配置到前端菜单动态渲染的完整解决方案一、引言:1.写这篇分享的背景在实际工作中,结合公司前后端分离架构及权限分布特点,我发现将权限划分为“用户-后端权限、角色-后端权限、后端权限关联前端权限”的管理方式,实操性…...

重获数据自主权:WechatDecrypt让你掌控数字记忆

重获数据自主权:WechatDecrypt让你掌控数字记忆 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 在数字时代,我们的聊天记录、社交关系和工作信息都存储在第三方平台上,…...

Qwen3.5-9B基础教程:start.sh脚本解析+环境变量注入+PATH调试技巧

Qwen3.5-9B基础教程:start.sh脚本解析环境变量注入PATH调试技巧 1. 项目概述 Qwen3.5-9B是一个拥有90亿参数的开源大语言模型,具备强大的逻辑推理、代码生成和多轮对话能力。该模型支持多模态理解(图文输入)和长上下文处理&…...

破解Silk音频兼容性难题:从格式转换到跨平台播放的完整解决方案

破解Silk音频兼容性难题:从格式转换到跨平台播放的完整解决方案 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion supp…...

二分查找终极教程:10个技巧掌握高效搜索算法

二分查找终极教程:10个技巧掌握高效搜索算法 【免费下载链接】leetcode Python & JAVA Solutions for Leetcode 项目地址: https://gitcode.com/gh_mirrors/leetcode/leetcode 二分查找算法是计算机科学中最经典、最高效的搜索算法之一,它通过…...

AirPodsDesktop:Windows平台苹果耳机功能缺失的突破性解决方案

AirPodsDesktop:Windows平台苹果耳机功能缺失的突破性解决方案 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop 在数…...

Unity坐标变换笔记

屏幕uv坐标计算方法: 顶点着色器: float4 positionCS : SV_POSITION; //表示裁剪空间下的坐标; float4 ndc input.positionCS * 0.5f; input.positionNDC.xy float2(ndc.x, ndc.y * _ProjectionParams.x) ndc.w; input.positionNDC.zw …...

深度解析:数据挖掘核心任务与实战应用场景

深度解析:数据挖掘核心任务与实战应用场景前言一、数据挖掘核心定义二、数据挖掘标准执行流程(CRISP-DM 流程图)流程节点说明:三、数据挖掘的主要任务(6大核心分类)1. 分类分析:预测已知类别2. …...