2021-08-08

1、编辑(Editing)

Ctrl + Space 基本的代码完成(类、方法、属性)

Ctrl + Alt + Space 快速导入任意类

Ctrl + Shift + Enter 语句完成

Ctrl + P 参数信息(在方法中调用参数)

Ctrl + Q 快速查看文档

Shift + F1 外部文档

Ctrl + 鼠标 简介

Ctrl + F1 显示错误描述或警告信息

Alt + Insert 自动生成代码

Ctrl + O 重新方法

Ctrl + Alt + T 选中

Ctrl + / 行注释

Ctrl + Shift + / 块注释

Ctrl + W 选中增加的代码块

Ctrl + Shift + W 回到之前状态

Ctrl + Shift + ]/[ 选定代码块结束、开始

Alt + Enter 快速修正

Ctrl + Alt + L 代码格式化

Ctrl + Alt + O 优化导入

Ctrl + Alt + I 自动缩进

Tab / Shift + Tab 缩进、不缩进当前行

Ctrl+X/Shift+Delete 剪切当前行或选定的代码块到剪贴板

Ctrl+C/Ctrl+Insert 复制当前行或选定的代码块到剪贴板

Ctrl+V/Shift+Insert 从剪贴板粘贴

Ctrl + Shift + V 从最近的缓冲区粘贴

Ctrl + D 复制选定的区域或行

Ctrl + Y 删除选定的行

Ctrl + Shift + J 添加智能线

Ctrl + Enter 智能线切割

Shift + Enter 另起一行

Ctrl + Shift + U 在选定的区域或代码块间切换

Ctrl + Delete 删除到字符结束

Ctrl + Backspace 删除到字符开始

Ctrl + Numpad+/- 展开折叠代码块

Ctrl + Numpad+ 全部展开

Ctrl + Numpad- 全部折叠

Ctrl + F4 关闭运行的选项卡

2、查找/替换(Search/Replace)

F3 下一个

Shift + F3 前一个

Ctrl + R 替换

Ctrl + Shift + F 全局查找

Ctrl + Shift + R 全局替换

3、运行(Running)

Alt + Shift + F10 运行模式配置

Alt + Shift + F9 调试模式配置

Shift + F10 运行

Shift + F9 调试

Ctrl + Shift + F10 运行编辑器配置

Ctrl + Alt + R 运行manage.py任务

4、调试(Debugging)

F8 跳过

F7 进入

Shift + F8 退出

Alt + F9 运行游标

Alt + F8 验证表达式

Ctrl + Alt + F8 快速验证表达式

F9 恢复程序

Ctrl + F8 断点开关

Ctrl + Shift + F8 查看断点

5、导航(Navigation)

Ctrl + N 跳转到类

Ctrl + Shift + N 跳转到符号

Alt + Right/Left 跳转到下一个、前一个编辑的选项卡

F12 回到先前的工具窗口

Esc 从工具窗口回到编辑窗口

Shift + Esc 隐藏运行的、最近运行的窗口

Ctrl + Shift + F4 关闭主动运行的选项卡

Ctrl + G 查看当前行号、字符号

Ctrl + E 当前文件弹出

Ctrl+Alt+Left/Right 后退、前进

Ctrl+Shift+Backspace 导航到最近编辑区域

Alt + F1 查找当前文件或标识

Ctrl+B / Ctrl+Click 跳转到声明

Ctrl + Alt + B 跳转到实现

Ctrl + Shift + I查看快速定义

Ctrl + Shift + B跳转到类型声明

Ctrl + U跳转到父方法、父类

Alt + Up/Down跳转到上一个、下一个方法

Ctrl + ]/[跳转到代码块结束、开始

Ctrl + F12弹出文件结构

Ctrl + H类型层次结构

Ctrl + Shift + H方法层次结构

Ctrl + Alt + H调用层次结构

F2 / Shift + F2下一条、前一条高亮的错误

F4 / Ctrl + Enter编辑资源、查看资源

Alt + Home显示导航条F11书签开关

Ctrl + Shift + F11书签助记开关

Ctrl + #[0-9]跳转到标识的书签

Shift + F11显示书签

6、搜索相关(Usage Search)

Alt + F7/Ctrl + F7文件中查询用法

Ctrl + Shift + F7文件中用法高亮显示

Ctrl + Alt + F7显示用法

7、重构(Refactoring)

F5复制F6剪切

Alt + Delete安全删除

Shift + F6重命名

Ctrl + F6更改签名

Ctrl + Alt + N内联

Ctrl + Alt + M提取方法

Ctrl + Alt + V提取属性

Ctrl + Alt + F提取字段

Ctrl + Alt + C提取常量

Ctrl + Alt + P提取参数

8、控制VCS/Local History

Ctrl + K提交项目

Ctrl + T更新项目

Alt + Shift + C查看最近的变化

Alt + BackQuote(’)VCS快速弹出

9、模版(Live Templates)

Ctrl + Alt + J当前行使用模版

Ctrl +J插入模版

10、基本(General)

Alt + #[0-9]打开相应的工具窗口

Ctrl + Alt + Y同步

Ctrl + Shift + F12最大化编辑开关

Alt + Shift + F添加到最喜欢

Alt + Shift + I根据配置检查当前文件

Ctrl + BackQuote(’)快速切换当前计划

Ctrl + Alt + S 打开设置页

Ctrl + Shift + A查找编辑器里所有的动作

Ctrl + Tab在窗口间进行切换

一些常用设置:

pycharm默认是自动保存的,习惯自己按ctrl + s 的可以进行如下设置:

file -> Setting -> General -> Synchronization -> Save files on frame deactivation 和 Save files automatically if application is idle for .. sec 的勾去掉

file ->Setting -> Editor -> Editor Tabs -> Mark modified tabs with asterisk 打上勾

Alt + Enter: 自动添加包

对于常用的快捷键,可以设置为visual studio(eclipse...)一样的:

file -> Setting -> Keymap -> Keymaps -> vuisual studio -> Apply

Pycharm中默认是不能用Ctrl+滚轮改变字体大小的,可以在file -> Setting ->Editor-〉Mouse中设置

要设置Pycharm的字体,要先在file -> Setting ->Editor-〉Editor中选择一种风格并保存,然后才可以改变

在setting中搜索theme可以改变主题,所有配色统一改变


Appium介绍

环境搭建

Appium使用

APP元素定位操作

Appium常用元素定位方式

name value

id id属性值

class class属性值

xpath xpath表达式

Selenium元素定位方法有哪些?

通过id、name、class_name、xpath、css_selector、link_text、partial_link_text、tag_name定位元素。一般,如果有id就使用id,然后使用css或者xpath来定位,当然定位的时候,需要在浏览器里边安装firebug firepath来抓取页面元素对应的xpath信息。

APP元素信息操作API

1. 点击元素

ele.click()

2.发送数据到输入框

方法:send_keys(vaue) # value:需要发送到输入框内的文本

3. 清空输入框内容

方法:clear()

4. 获取元素的文本内容

方法: text

5. 获取元素的属性值

方法: get_attribute(value) # value:元素的属性

6. 获取元素在屏幕上的坐标

方法:location

7. 获取app包名和启动名

获取包名方法:current_package

APP元素事件操作API

1. 前置代码

from appium import webdriver

# server 启动参数

desired_caps = {}

# 设备信息

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '5.1'

desired_caps['deviceName'] = '192.168.56.101:5555'

# app的信息

desired_caps['appPackage'] = 'com.android.settings'

desired_caps['appActivity'] = '.Settings'

# 声明我们的driver对象

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

2. swip滑动事件

从一个坐标位置滑动到另一个坐标位置,只能是两个点之间的滑动

方法:swipe(start_x, start_y, end_x, end_y, duration=None)

3. scroll滑动事件

从一个元素滑动到另一个元素,直到页面自动停止

方法:scroll(origin_el, destination_el)

4. drag拖拽事件

从一个元素滑动到另一个元素,第二个元素替代第一个元素原本屏幕上的位置

方法:drag_and_drop(origin_el, destination_el)

5. 应用置于后台事件

APP放置后台,模拟热启动

方法:background_app(seconds)

APP模拟手势高级操作

1. 前置代码

from appium import webdriver

# server 启动参数

desired_caps = {}

# 设备信息

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '5.1'

desired_caps['deviceName'] = '192.168.56.101:5555'

# app的信息

desired_caps['appPackage'] = 'com.android.settings'

desired_caps['appActivity'] = '.Settings'

# 声明我们的driver对象

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

2. 手指轻敲操作

模拟手指轻敲一下屏幕操作

方法:tap(element=None, x=None, y=None)

方法:perform() # 发送命令到服务器执行操作

参数:

1.element:被定位到的元素

2.x:相对于元素左上角的坐标,通常会使用元素的X轴坐标

3.y:通常会使用元素的Y轴坐标

3. 手指按操作

模拟手指按下屏幕,按就要对应着离开.

方法:press(el=None, x=None, y=None)

方法:release() # 结束动作,手指离开屏幕

4. 等待操作

方法:wait(ms=0)

5. 手指长按操作

模拟手机按下屏幕一段时间,按就要对应着离开.

方法:long_press(el=None, x=None, y=None, duration=1000)

6. 手指移动操作

模拟手机的滑动操作

方法:move_to(el=None, x=None, y=None)

手机操作API

针对手机的一些常用设置功能进行操作.

1. 前置代码

from appium import webdriver

# server 启动参数

desired_caps = {}

# 设备信息

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '5.1'

desired_caps['deviceName'] = '192.168.56.101:5555'

# app的信息

desired_caps['appPackage'] = 'com.android.settings'

desired_caps['appActivity'] = '.Settings'

# 声明我们的driver对象

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

2. 获取手机时间

方法:device_time

代码实现:

# 获取当前手机的时间

print(driver.device_time)

3. 获取手机的宽高

获取手机的宽高,可以根据宽高做一些坐标的操作

方法:get_window_size()

代码实现:

print(driver.get_window_size())

4. 发送键到设备

模拟系统键值的操作,比如操作home键,音量键,返回键等。

参数:

keycode:发送给设备的关键代码

metastate:关于被发送的关键代码的元信息,一般为默认值

业务场景:

1.打开设置

2.按多次音量增加键

代码实现:

for i in range(3):

    driver.keyevent(24)

5. 操作手机通知栏

打开手机的通知栏,可以获取通知栏的相关信息和元素操作

方法:open_notifications()

业务场景:

1.启动设置

2.打开通知栏

代码实现:

driver.open_notifications()

6. 获取手机当前网络

获取手机当前连接的网络

方法:network_connection

业务场景:获取手机当前网络模式

代码实现:

print(driver.network_connection)

7. 设置手机网络

更改手机的网络模式,模拟特殊网络情况下的测试用例

方法:set_network_connection(connectionType)

8. 手机截图

截取手机当前屏幕,保存指定格式图片到设定位置

方法:get_screenshot_as_file(filename)

脚本录制

点击开始录制按键开始录制脚本

点击顶部导航栏左侧第一个“选择元素”按键选定搜索栏,然后点击右边点“点击”按键进行操作(录制过程就是先选择录制窗口左边的APP元素,然后录制窗口右边的操作方式)。

录制完成后点击“停止录制”按键,录制窗口右上角会同步显示操作代码,选择代码类型,将模板代码转换成正式代码,复制代码到Pycharm。

代码复制到pycharm后,最好是在每个操作或者页面切换处加上等待时间,否则会因为网速、APP设计问题或者其他原因,无法及时到达下一个页面,导致APPIUM无法获取页面元素而定位元素失败,在pycharm运行时报错。代码编辑好后点击pycharm的运行按键,APPium就会在手机上面自动运行脚本了。

————————————————

版权声明:本文为CSDN博主「hjy_mysql」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/hjy_mysql/article/details/119520279

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容

  • 文章导读: 查看源代码:ctrl+鼠标左键 本文解决问题:1、断点测试2、如何在pycharm里面安装模块3、快捷...
    创造new_world阅读 548评论 0 0
  • 1、编辑(Editing)Ctrl + Space 基本的代码完成(类、方法、属性)Ctrl + Alt + Sp...
    淅平阅读 2,884评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,535评论 28 53
  • 人工智能是什么?什么是人工智能?人工智能是未来发展的必然趋势吗?以后人工智能技术真的能达到电影里机器人的智能水平吗...
    ZLLZ阅读 3,773评论 0 5
  • 首先介绍下自己的背景: 我11年左右入市到现在,也差不多有4年时间,看过一些关于股票投资的书籍,对于巴菲特等股神的...
    瞎投资阅读 5,722评论 3 8