随便写点东西,有的是网上借鉴,有的是自己体会,总之都是根据自己的需求进行优化的一些东西,随笔备忘

APP功能测试:
1.业务逻辑正确性测试:产品文档、隐形需求----编写测试用例
2.兼容性测试:
(1)系统版本:
android版本:官方版本(9.0、8.5、7.9…)华为、小米、魅族等
ios版本:官方版本
(2)分辨率:480720、19201080等等,主要查看页面展示、图片展示
(3)网络情况:2G\3G\4G
3.异常测试:
(1)热启动应用:置于后台,置于前台
(2)网络切换/中断恢复
(3)电话/信息的中断恢复
4.升级/安装/卸载测试
(1)升级:系统升级,渠道升级,临近版本(1.0>1.1),跨版本(1.0>2.0)
(2)安装卸载测试:系统版本,首次安装,覆盖安装,卸载后安装,卸载>安装>卸载
5.健壮性测试:
(1)手机资源消耗:cpu,内存
(2)流量消耗:图片,传输数据压缩
(3)崩溃恢复测试:闪退,报错

ADB:
1.帮助:adb -help
2.启动adb server:adb start-server
3.关闭adb server:adb kill-server
4.查询设备:adb devices
5.系统版本号:adb shell getprop ro.build.version.release
6.电脑文件发送到手机:adb push 电脑文件路径/文件 手机存储路径
7.从手机拉取文件:adb pull 手机文件路径 电脑文件存储路径
8.查看手机运行日志:adb logcat 扩展 可以通过过滤报名取到指定app运行日志(mac/linux:| grep 包名 win: | findstr 包名)
9.进入手机shell命令行:adb shell 可以操作linux命令 top 过滤app占用资源
10.获取app包名与启动名:
(1)mac/linux:adb shell dumpsys window windows | grep mFocusedApp
(2)win:adb shell dumpsys window windows | findstr mFocusedApp
11.安装app到手机:adb install apk文件路径
12.卸载app:adb uninstall 包名
13.获取app启动时间:adb shell am start -w 包名/启动名
14.指定某台设备:adb -s 设备号

appium:
appium: 封装android官方自动化工具uiautomator
appium原理图:脚本 <-> appium服务 <-> 手机端 ->uiautomator
appium声明手机驱动对象:webdriver.remote(服务地址,启动参数)

关闭app: close_app() # 关闭当前app 但不关闭driver
关闭驱动对象: quit() # 退出手机驱动对象,同时关闭所有关联窗口
启动新的app:start_activity(包名,启动名)
appium-安装app:install_app(app在电脑端的路径)appium-卸载app:remove_app(包名)
判断app是否安装:is_app_installed(包名) # 安装返回True, 未安装:返回Falseappium-电脑文件发送到手机:push_file(手机存储路径,data) # data:base64编码数据
appium-从手机拉取文件:pull_file(手机存储路径) # 返回是base64编码数据
获取当前屏幕内元素结构:page_source # 返回的是<<当前>>屏幕

Appium_Python_Api文档
1.contexts
contexts(self):
Returns the contexts within the current session.
返回当前会话中的上下文,使用后可以识别H5页面的控件

:Usage:driver.contexts

用法 driver.contexts
2. current_context
current_context(self):
Returns the current context of the current session.
返回当前会话的当前上下文
:Usage:
driver.current_context
用法driver. current_context
3. context
context(self):
Returns the current context of the current session.
返回当前会话的当前上下文。
:Usage:
driver.context
用法driver. Context
4. find_element_by_ios_uiautomation
find_element_by_ios_uiautomation(self, uia_string):
Finds an element by uiautomation in iOS.
通过iOS uiautomation查找元素
:Args:
- uia_string - The element name in the iOS UIAutomation library

:Usage:driver.find_element_by_ios_uiautomation('.elements()[1].cells()[2]')

用法dr. find_element_by_ios_uiautomation(‘elements’)
5. find_element_by_accessibility_id
find_element_by_accessibility_id(self, id):
Finds an element by accessibility id.
通过accessibility id查找元素
:Args:
- id - a string corresponding to a recursive element search using the
Id/Name that the native Accessibility options utilize

:Usage:driver.find_element_by_accessibility_id()

用法driver.find_element_by_accessibility_id(‘id’)
6.scroll
scroll(self, origin_el, destination_el):
Scrolls from one element to another
从元素origin_el滚动至元素destination_el
:Args:
- originalEl - the element from which to being scrolling
- destinationEl - the element to scroll to

:Usage:driver.scroll(el1, el2)

用法 driver.scroll(el1,el2)
7. drag_and_drop
drag_and_drop(self, origin_el, destination_el):
Drag the origin element to the destination element
将元素origin_el拖到目标元素destination_el
:Args:
- originEl - the element to drag
- destinationEl - the element to drag to
用法 driver.drag_and_drop(el1,el2)
8.tap
tap(self, positions, duration=None):
Taps on an particular place with up to five fingers, holding for a certain time
模拟手指点击(最多五个手指),可设置按住时间长度(毫秒)

:Args:- positions - an array of tuples representing the x/y coordinates ofthe fingers to tap. Length can be up to five.- duration - (optional) length of time to tap, in ms:Usage:driver.tap([(100, 20), (100, 60), (100, 100)], 500)

用法 driver.tap([(x,y),(x1,y1)],500)
9. swipe
swipe(self, start_x, start_y, end_x, end_y, duration=None):
Swipe from one point to another point, for an optional duration.
从A点滑动至B点,滑动时间为毫秒
:Args:
- start_x - x-coordinate at which to start
- start_y - y-coordinate at which to start
- end_x - x-coordinate at which to stop
- end_y - y-coordinate at which to stop
- duration - (optional) time to take the swipe, in ms.

:Usage:driver.swipe(100, 100, 100, 400)

用法 driver.swipe(x1,y1,x2,y2,500)
10.flick
flick(self, start_x, start_y, end_x, end_y):
Flick from one point to another point.
按住A点后快速滑动至B点
:Args:
- start_x - x-coordinate at which to start
- start_y - y-coordinate at which to start
- end_x - x-coordinate at which to stop
- end_y - y-coordinate at which to stop

:Usage:driver.flick(100, 100, 100, 400)

用法 driver.flick(x1,y1,x2,y2)
11.pinch
pinch(self, element=None, percent=200, steps=50):
Pinch on an element a certain amount
在元素上执行模拟双指捏(缩小操作)
:Args:
- element - the element to pinch
- percent - (optional) amount to pinch. Defaults to 200%
- steps - (optional) number of steps in the pinch action

:Usage:driver.pinch(element)

用法 driver.pinch(element)
12.zoom
zoom(self, element=None, percent=200, steps=50):
Zooms in on an element a certain amount
在元素上执行放大操作
:Args:
- element - the element to zoom
- percent - (optional) amount to zoom. Defaults to 200%
- steps - (optional) number of steps in the zoom action

:Usage:driver.zoom(element)

用法 driver.zoom(element)
13.reset
reset(self):
Resets the current application on the device.
重置应用(类似删除应用数据)
用法 driver.reset()
14. hide_keyboard
hide_keyboard(self, key_name=None, key=None, strategy=None):
Hides the software keyboard on the device. In iOS, use key_name to press a particular key, or strategy. In Android, no parameters are used.
隐藏键盘,iOS使用key_name隐藏,安卓不使用参数

:Args:- key_name - key to press- strategy - strategy for closing the keyboard (e.g., `tapOutside`)

driver.hide_keyboard()
15. keyevent
keyevent(self, keycode, metastate=None):
Sends a keycode to the device. Android only. Possible keycodes can be found in http://developer.android.com/reference/android/view/KeyEvent.html.
发送按键码(安卓仅有),按键码可以上网址中找到
:Args:
- keycode - the keycode to be sent to the device
- metastate - meta information about the keycode being sent
用法 dr.keyevent(‘4’)
16. press_keycode
press_keycode(self, keycode, metastate=None):
Sends a keycode to the device. Android only. Possible keycodes can be found in http://developer.android.com/reference/android/view/KeyEvent.html.
发送按键码(安卓仅有),按键码可以上网址中找到

:Args:- keycode - the keycode to be sent to the device- metastate - meta information about the keycode being sent

用法 driver.press_ keycode(‘4’)
dr.keyevent(‘4’)与driver.press_ keycode(‘4’) 功能实现上一样的,都是按了返回键
17. long_press_keycode
long_press_keycode(self, keycode, metastate=None):
Sends a long press of keycode to the device. Android only. Possible keycodes can be
found in http://developer.android.com/reference/android/view/KeyEvent.html.
发送一个长按的按键码(长按某键)
详细的按键代码见这里 http://developer.android.com/reference/android/view/KeyEvent.html.

:Args:- keycode - the keycode to be sent to the device- metastate - meta information about the keycode being sent

用法 driver.long_press_keycode(4) 谢谢@t880216t童鞋反馈
18.current_activity
current_activity(self):
Retrieves the current activity on the device.
获取当前的activity
用法 print(driver.current_activity)
19. wait_activity
wait_activity(self, activity, timeout, interval=1):
Wait for an activity: block until target activity presents or time out.
This is an Android-only method.
等待指定的activity出现直到超时,interval为扫描间隔1秒
即每隔几秒获取一次当前的activity
返回的True 或 False
:Agrs:
- activity - target activity
- timeout - max wait time, in seconds
- interval - sleep interval between retries, in seconds
用法driver.wait_activity(‘.activity.xxx’,5,2)
20. background_app
background_app(self, seconds):
Puts the application in the background on the device for a certain duration.
后台运行app多少秒
:Args:
- seconds - the duration for the application to remain in the background
用法 driver.background_app(5) 置后台5秒后再运行
21.is_app_installed
is_app_installed(self, bundle_id):
Checks whether the application specified by bundle_id is installed on the device.
检查app是否有安装
返回 True or False
:Args:
- bundle_id - the id of the application to query
用法 driver.is_app_installed(“com.xxxx”)
22.install_app
install_app(self, app_path):
Install the application found at app_path on the device.
安装app,app_path为安装包路径
:Args:
- app_path - the local or remote path to the application to install
用法 driver.install_app(app_path)
23.remove_app
remove_app(self, app_id):
Remove the specified application from the device.
删除app
:Args:
- app_id - the application id to be removed
用法 driver.remove_app(“com.xxx.”)
24.launch_app
launch_app(self):
Start on the device the application specified in the desired capabilities.
启动app
用法 driver.launch_app()
25.close_app
close_app(self):
Stop the running application, specified in the desired capabilities, on the device.
关闭app
用法 driver.close_app()
启动和关闭app运行好像会出错
26. start_activity
start_activity(self, app_package, app_activity, **opts):
Opens an arbitrary activity during a test. If the activity belongs to
another application, that application is started and the activity is opened.

This is an Android-only method.
在测试过程中打开任意活动。如果活动属于另一个应用程序,该应用程序的启动和活动被打开。

这是一个安卓的方法
:Args:
- app_package - The package containing the activity to start.
- app_activity - The activity to start.
- app_wait_package - Begin automation after this package starts (optional).
- app_wait_activity - Begin automation after this activity starts (optional).
- intent_action - Intent to start (optional).
- intent_category - Intent category to start (optional).
- intent_flags - Flags to send to the intent (optional).
- optional_intent_arguments - Optional arguments to the intent (optional).
- stop_app_on_reset - Should the app be stopped on reset (optional)?
用法 driver.start_activity(app_package, app_activity)
27.lock
lock(self, seconds):
Lock the device for a certain period of time. iOS only.
锁屏一段时间 iOS专有
:Args:
- the duration to lock the device, in seconds
用法 driver.lock()
28.shake
shake(self):
Shake the device.
摇一摇手机
用法 driver.shake()
29.open_notifications
open_notifications(self):
Open notification shade in Android (API Level 18 and above)
打系统通知栏(仅支持API 18 以上的安卓系统)
用法 driver.open_notifications()
30.network_connection
network_connection(self):
Returns an integer bitmask specifying the network connection type.
Android only.
返回网络类型 数值
Possible values are available through the enumeration appium.webdriver.ConnectionType

用法 driver.network_connection
31. set_network_connection
set_network_connection(self, connectionType):
Sets the network connection type. Android only.
Possible values:
Value (Alias) | Data | Wifi | Airplane Mode
-------------------------------------------------
0 (None) | 0 | 0 | 0
1 (Airplane Mode) | 0 | 0 | 1
2 (Wifi only) | 0 | 1 | 0
4 (Data only) | 1 | 0 | 0
6 (All network on) | 1 | 1 | 0
These are available through the enumeration appium.webdriver.ConnectionType
设置网络类型
:Args:
- connectionType - a member of the enum appium.webdriver.ConnectionType

用法 先加载from appium.webdriver.connectiontype import ConnectionType
dr.set_network_connection(ConnectionType.WIFI_ONLY)
ConnectionType的类型有
NO_CONNECTION = 0
AIRPLANE_MODE = 1
WIFI_ONLY = 2
DATA_ONLY = 4
ALL_NETWORK_ON = 6
32. available_ime_engines
available_ime_engines(self):
Get the available input methods for an Android device. Package and activity are returned (e.g., [‘com.android.inputmethod.latin/.LatinIME’])
Android only.
返回安卓设备可用的输入法
用法print(driver.available_ime_engines)
33.is_ime_active
is_ime_active(self):
Checks whether the device has IME service active. Returns True/False.
Android only.
检查设备是否有输入法服务活动。返回真/假。
安卓
用法 print(driver.is_ime_active())
34.activate_ime_engine
activate_ime_engine(self, engine):
Activates the given IME engine on the device.
Android only.
激活安卓设备中的指定输入法,设备可用输入法可以从“available_ime_engines”获取
:Args:
- engine - the package and activity of the IME engine to activate (e.g.,
‘com.android.inputmethod.latin/.LatinIME’)

用法 driver.activate_ime_engine(“com.android.inputmethod.latin/.LatinIME”)
35.deactivate_ime_engine
deactivate_ime_engine(self):
Deactivates the currently active IME engine on the device.
Android only.
关闭安卓设备当前的输入法
用法 driver.deactivate_ime_engine()
36.active_ime_engine
active_ime_engine(self):
Returns the activity and package of the currently active IME engine (e.g.,
‘com.android.inputmethod.latin/.LatinIME’).
Android only.
返回当前输入法的包名
用法 driver.active_ime_engine
37. toggle_location_services
toggle_location_services(self):
Toggle the location services on the device. Android only.
打开安卓设备上的位置定位设置
用法 driver.toggle_location_services()
38.set_location
set_location(self, latitude, longitude, altitude):
Set the location of the device
设置设备的经纬度
:Args:
- latitude纬度 - String or numeric value between -90.0 and 90.00
- longitude经度 - String or numeric value between -180.0 and 180.0
- altitude海拔高度- String or numeric value
用法 driver.set_location(纬度,经度,高度)
39.tag_name
tag_name(self):
This element’s tagName property.
返回元素的tagName属性
经实践返回的是class name
用法 element.tag_name()
40.text
text(self):
The text of the element.
返回元素的文本值
用法 element.text
41.click
click(self):
Clicks the element.
点击元素
用法 element.click()
42.submit
submit(self):
Submits a form.
提交表单
用法 暂无
43.clear
clear(self):
Clears the text if it’s a text entry element.
清除输入的内容
用法 element.clear()
44.get_attribute
get_attribute(self, name):
详见@chenhengjie123 的超级链接
Gets the given attribute or property of the element.
1、获取 content-desc 的方法为 get_attribute(“name”) ,而且还不能保证返回的一定是 content-desc (content-desc 为空时会返回 text 属性值)
2、get_attribute 方法不是我们在 uiautomatorviewer 看到的所有属性都能获取的(此处的名称均为使用 get_attribute 时使用的属性名称):
可获取的:
字符串类型:
name(返回 content-desc 或 text)
text(返回 text)
className(返回 class,只有 API=>18 才能支持)
resourceId(返回 resource-id,只有 API=>18 才能支持)
This method will first try to return the value of a property with the
given name. If a property with that name doesn’t exist, it returns the
value of the attribute with the same name. If there’s no attribute with
that name, None is returned.

Values which are considered truthy, that is equals "true" or "false",
are returned as booleans.  All other non-``None`` values are returned
as strings.  For attributes or properties which do not exist, ``None``
is returned.:Args:- name - Name of the attribute/property to retrieve.Example::# Check if the "active" CSS class is applied to an element.is_active = "active" in target_element.get_attribute("class")

用法 暂无
45.is_selected
is_selected(self):
Returns whether the element is selected.

Can be used to check if a checkbox or radio button is selected.

返回元素是否选择。
可以用来检查一个复选框或单选按钮被选中。
用法 element.is_slected()
46.is_enabled
is_enabled(self):
Returns whether the element is enabled.
返回元素是否可用True of False
用法 element.is_enabled()
47.find_element_by_id
find_element_by_id(self, id_):
Finds element within this element’s children by ID.
通过元素的ID定位元素
:Args:
- id_ - ID of child element to locate.
用法 driver. find_element_by_id(“id”)
48. find_elements_by_id
find_elements_by_id(self, id_):
Finds a list of elements within this element’s children by ID.
通过元素ID定位,含有该属性的所有元素
:Args:
- id_ - Id of child element to find.
用法 driver. find_elements_by_id(“id”)
49. find_element_by_name 1.5以上的版本已弃用
find_element_by_name(self, name):
Finds element within this element’s children by name.
通过元素Name定位(元素的名称属性text)
:Args:
- name - name property of the element to find.
用法 driver.find_element_by_name(“name”)
替代方法 driver.find_element_by_xpath("//*[@text=‘我的’]")
还有其它方法的话欢迎补充
50. find_elements_by_name
find_elements_by_name(self, name):
Finds a list of elements within this element’s children by name.
通过元素Name定位(元素的名称属性text),含有该属性的所有元素
:Args:
- name - name property to search for.
用法 driver.find_element_by_name(“name”)
51. find_element_by_link_text
find_element_by_link_text(self, link_text):
Finds element within this element’s children by visible link text.
通过元素可见链接文本定位
:Args:
- link_text - Link text string to search for.
用法 driver.find_element_by_link_text(“text”)
52. find_elements_by_link_text
find_element_by_link_text(self, link_text):
Finds a list of elements within this element’s children by visible link text
通过元素可见链接文本定位,含有该属性的所有元素
:Args:
- link_text - Link text string to search for.
用法 driver.find_elements_by_link_text(“text”)
53. find_element_by_partial_link_text
find_element_by_partial_link_text(self, link_text):
Finds element within this element’s children by partially visible link text.
通过元素部分可见链接文本定位
:Args:
- link_text - Link text string to search for.
driver. find_element_by_partial_link_text(“text”)
54. find_elements_by_partial_link_text
find_elements_by_partial_link_text(self, link_text):
Finds a list of elements within this element’s children by link text.
通过元素部分可见链接文本定位,含有该属性的所有元素
:Args:
- link_text - Link text string to search for.
driver. find_elements_by_partial_link_text(“text”)
55. find_element_by_tag_name
find_element_by_tag_name(self, name):
Finds element within this element’s children by tag name.
通过查找html的标签名称定位元素
:Args:
- name - name of html tag (eg: h1, a, span)
用法 driver.find_element_by_tag_name(“name”)
56. find_elements_by_tag_name
find_elements_by_tag_name(self, name):
Finds a list of elements within this element’s children by tag name.
通过查找html的标签名称定位所有元素
:Args:
- name - name of html tag (eg: h1, a, span)
用法driver.find_elements_by_tag_name(“name”)
57. find_element_by_xpath
find_element_by_xpath(self, xpath):
Finds element by xpath.
通过Xpath定位元素,详细方法可参阅http://www.w3school.com.cn/xpath/
:Args:
xpath - xpath of element to locate. “//input[@class=‘myelement’]”

Note: The base path will be relative to this element's location.This will select the first link under this element.::myelement.find_elements_by_xpath(".//a")However, this will select the first link on the page.::myelement.find_elements_by_xpath("//a")

用法 find_element_by_xpath(“//*”)
58. find_elements_by_xpath
find_elements_by_xpath(self, xpath):
Finds elements within the element by xpath.

:Args:- xpath - xpath locator string.Note: The base path will be relative to this element's location.This will select all links under this element.::myelement.find_elements_by_xpath(".//a")However, this will select all links in the page itself.::myelement.find_elements_by_xpath("//a")

用法find_elements_by_xpath(“//*”)
59. find_element_by_class_name
find_element_by_class_name(self, name):
Finds element within this element’s children by class name.
通过元素class name属性定位元素
:Args:
- name - class name to search for.
用法 driver. find_element_by_class_name(“android.widget.LinearLayout”)
60. find_elements_by_class_name
find_elements_by_class_name(self, name):
Finds a list of elements within this element’s children by class name.
通过元素class name属性定位所有含有该属性的元素
:Args:
- name - class name to search for.
用法 driver. find_elements_by_class_name(“android.widget.LinearLayout”)
61. find_element_by_css_selector
find_element_by_css_selector(self, css_selector):
Finds element within this element’s children by CSS selector.
通过CSS选择器定位元素
:Args:
- css_selector - CSS selctor string, ex: ‘a.nav#home’
62.send_keys
send_keys(self, *value):
Simulates typing into the element.
在元素中模拟输入(开启appium自带的输入法并配置了appium输入法后,可以输入中英文)
:Args:
- value - A string for typing, or setting form fields. For setting
file inputs, this could be a local file path.

Use this to send simple key events or to fill out form fields::form_textfield = driver.find_element_by_name('username')form_textfield.send_keys("admin")This can also be used to set file inputs.::file_input = driver.find_element_by_name('profilePic')file_input.send_keys("path/to/profilepic.gif")# Generally it's better to wrap the file path in one of the methods# in os.path to return the actual path to support cross OS testing.# file_input.send_keys(os.path.abspath("path/to/profilepic.gif"))

driver.element.send_keys(“中英”)
63. is_displayed
is_displayed(self):
Whether the element is visible to a user.
此元素用户是否可见。简单地说就是隐藏元素和被控件挡住无法操作的元素(仅限 Selenium,appium是否实现了类似功能不是太确定)这一项都会返回 False

用法 driver.element.is_displayed()
64. location_once_scrolled_into_view
location_once_scrolled_into_view(self):
“”"THIS PROPERTY MAY CHANGE WITHOUT WARNING. Use this to discover
where on the screen an element is so that we can click it. This method
should cause the element to be scrolled into view.

Returns the top lefthand corner location on the screen, or None if
the element is not visible.
暂不知道用法
“”"
65.size
size(self):
The size of the element.
获取元素的大小(高和宽)

new_size[“height”] = size[“height”]
new_size[“width”] = size[“width”]

用法 driver.element.size
66. value_of_css_property
value_of_css_property(self, property_name):
The value of a CSS property.
CSS属性

用法 暂不知
67.location
location(self):
The location of the element in the renderable canvas.
获取元素左上角的坐标

用法 driver.element.location
‘’‘返回element的x坐标, int类型’’’
driver.element.location.get(‘x’)
‘’‘返回element的y坐标, int类型’’’
driver.element.location.get(‘y’)
68.rect
rect(self):
A dictionary with the size and location of the element.
元素的大小和位置的字典
69. get_screenshot_as_base64
screenshot_as_base64(self):
Gets the screenshot of the current window as a base64 encoded string
which is useful in embedded images in HTML.
获取当前元素的截图为Base64编码的字符串,在HTML中嵌入的图像
:Usage:
img_b64 = element.get_screenshot_as_base64
70.execute_script
execute_script(self, script, *args):
Synchronously Executes JavaScript in the current window/frame.
在当前窗口/框架(特指 Html 的 iframe )同步执行 javascript 代码。你可以理解为如果这段代码是睡眠5秒,这五秒内主线程的 javascript 不会执行
:Args:
- script: The JavaScript to execute.
- *args: Any applicable arguments for your JavaScript.

:Usage:driver.execute_script('document.title')

71.execute_async_script
execute_async_script(self, script, *args):
Asynchronously Executes JavaScript in the current window/frame.
插入 javascript 代码,只是这个是异步的,也就是如果你的代码是睡眠5秒,那么你只是自己在睡,页面的其他 javascript 代码还是照常执行
:Args:
- script: The JavaScript to execute.
- *args: Any applicable arguments for your JavaScript.

:Usage:driver.execute_async_script('document.title')

72.current_url
current_url(self):
Gets the URL of the current page.
获取当前页面的网址。
:Usage:
driver.current_url
用法 driver.current_url
73. page_source
page_source(self):
Gets the source of the current page.
获取当前页面的源。
:Usage:
driver.page_source
74.close
close(self):
Closes the current window.
关闭当前窗口
:Usage:
driver.close()
75.quit
quit(self):
Quits the driver and closes every associated window.
退出脚本运行并关闭每个相关的窗口连接
:Usage:
driver.quit()
76.get_screenshot_as_file
get_screenshot_as_file(self, filename):
Gets the screenshot of the current window. Returns False if there is
any IOError, else returns True. Use full paths in your filename.
截取当前窗口的截图,如果有写入错误会返回False,其它返回True
filename 使用绝对路径
:Args:
- filename: The full path you wish to save your screenshot to.

:Usage:driver.get_screenshot_as_file('c:/foo.png')

77.get_window_size
get_window_size(self, filename):
Gets the width and height of the current window.
获取当前屏幕的分辨率(长和宽)
:Usage:
driver.get_window_size()

随笔备忘记录-Appium_Python_Api文档相关推荐

  1. 随笔备忘记录-UI自动化测试-操作配置文件、封装公共类

    随便写点东西,有的是网上借鉴,有的是自己体会,总之都是根据自己的需求进行优化的一些东西,随笔备忘录 python3配置文件的增删改查等操作可以使用内置的ConfigParser模块,需要一个配置文件去 ...

  2. PyQt5随笔:PyQt5 官方网站文档、一些基础教程网站和书籍推荐

    PyQt5随笔:PyQt5 官方网站文档.一些基础教程网站和书籍推荐 文章目录 PyQt5随笔:PyQt5 官方网站文档.一些基础教程网站和书籍推荐 1. 官方网站文档 2.基础教程网站(点击标题即可 ...

  3. Tmux命令使用备忘记录

    Tmux命令使用备忘记录 本博客只是用于记录Tmux最简单的命令,方便查阅. 注:Tmux当中的快捷键使用前需要先使用Ctrl+b 1. 新建会话 方式一 $ Tmux 此方式默认创建 <ses ...

  4. php 会员到期提醒_电脑上怎么在桌面加一个备忘记录提醒便签软件?

    电脑是大家日常工作中离不开的一款工具,使用电脑不仅可查询工作中所需的重要信息,还可以在电脑上记录一些工作备忘.工作任务等,为了避免忘记记录在电脑上备忘事项,大家可以选择一些能够在电脑桌面上查看且支持设 ...

  5. mds部署服务器系统,主、备MDS服务器配置部署文档.pdf

    主.备MDS服务器配置部署文档 主.主.备备 MDSMDS 服务器配置部署文档服务器配置部署文档 主主..备备 MDSMDS 服务器配置部署文档服务器配置部署文档 运营中心运营中心 运营中心运营中心 ...

  6. 无法关闭microsoft word_仅记录word文档损坏后的挣扎(亲历)

    对于word文档损坏,每个人都不希望遇到,但是谁又能确保这样的事情一定不发生在自己身上.本文章写在尝试网上通用方法不可行之后,仅做最后的挣扎. 昨天我就遭遇到了这样的事情,毕业论文遭到损坏,顿时心如死 ...

  7. 计算机的文件打开记录怎么删,怎样删除最近使用的文档记录,电脑文档文件怎么删除...

    隐私,一直都是人们所注重的. 在电脑的使用上,很多人也很注重隐私. 自己的私人电脑,不允许其他人擅自使用. 同时对于隐私的保护,很多人在使用完电脑后悔清除相关的记录. 大家一般都会在电脑上使用文档,那 ...

  8. 激光打印机,保留打印记录的文档

    一.Server 2003 Enterprise x64 SP2 1.鼠标移到需要设置的打印机,点击右键,选择打印机属性 2.选择高级,勾选保留打印的文档 3.查看记录 4.因为是通过域用户连接共享打 ...

  9. 详细记录Word文档(包含doc文件和docx文件的上传图片会回显)转Html实现前端预览

    实现了两种格式Word文档转Html的需求 优点:可以实现多图的doc文档和docx文档转HTML代码,图片也会完美展示,图片不需要保存到本地服务器,直接上传到文件服务器即可,文档格式也会保留 缺点: ...

最新文章

  1. Android onMeasure方法介绍
  2. 这段AI的深情告白在外网爆火:我并非真实,从未出生,永不死亡,你能爱我吗?...
  3. java注解式开发_JAVA语言之Spring MVC注解式开发使用详解[Java代码]
  4. dom解析和sax解析的区别及优缺点
  5. python基础类型,Python基础-类
  6. 1054 The Dominant Color (20 分)_12行代码AC
  7. DOM4J介绍与代码示例 (强大的xml处理工具)
  8. php项目私有化部署保护代码,ThinkPHP项目安全配置解决方案
  9. android 解码webp动画,android webp编解码详解
  10. 仓库文件SVN总结-java教程
  11. vivo z5和z5x有什么区别
  12. 为资产分类定义折旧范围_SAP折旧范围概念
  13. linux文件移动到hdfs,解决从linux本地文件系统上传文件到HDFS时的权限问题
  14. QoS队列调度技术详解
  15. CREO图文教程:利用CREO软件实现模型零件设计实例大全(曲柱、矿泉水瓶、三弯管、风扇叶、一腔多模、螺旋弹簧、数字刻度、足球设计、齿轮参数化设计、油缸)等几十个案例之详细攻略
  16. 测试工程师/测试开发面试题整理
  17. javascript当中iframe的用法
  18. 虚拟机您的计算机无法启动,一键解决win10虚拟机无法启动的问题
  19. Android 中定义图片的资源文件
  20. 用大约 10 万字的内容对 Java 的核心知识点和常见的 1000 多道面试题,做了详细的介绍

热门文章

  1. 数据库chapter 4 数据库安全性
  2. WWW网络端加载图片
  3. 小孩的游戏 - 2021数据结构 排序和选择实验题
  4. 个人总结2019年7月14日
  5. FBank创始人王宇哲:区块链使人类更加自由|筱静观察
  6. 工业相机、镜头、光源选择
  7. 使用嵌套循环产生下列图案 $ $$ $$$ $$$$
  8. 鸿蒙eTS状态管理Consume和Provide
  9. OA选型之浅谈OA系统试用
  10. 全启式安全阀行业现状调研及趋势分析报告