元素点击
click() 方法使用与 Selenium 类似,一种最常见的元素操作方式,模拟人的点击行为。
既然是说元素点击,那么点击的对象是一个元素。
在点击之前,必须先通过 find_element 找到想操作的元素对象,然后执行点击。
driver.find_element_by_xpath('//*[@text="我的收藏"]').click()
多点触摸
屏幕多点点击操作 tap() 方法,和 click() 方法有很大的区别。
click() 属于页面元素类 WebElement
类的方法,必须要先找到一个元素,通过元素对象才能执行 click() 方法。click() 必须要指定点击的元素。
有时候因某些原因(无法定位、定位过于繁琐)确实无法找到一个元素,我们只有通过指定屏幕某个坐标点来点击时,或者想模拟手指同时点击多个元素的时候,就需要通过 tap() 方法。
tap() 方法是模拟多点触摸,需要指定屏幕上的多个坐标点。
手机上的坐标点与电脑上一致,一般由横坐标和纵坐标共同构成。比如一个
1080 x 1920
分辨率的手机,那么左上角的点就是(0, 0)
,右下角的点为(1080, 1920)
。
tap() 方法定义如下:
tap(positions, duration=None)
- positions:具体的坐标点,数据格式为一个
list
包含的多个tuple
,每个tuple
中包含一个横坐标和纵坐标,代表屏幕上一个具体的点,最多支持五个点; - duration:的点击的时长,也可以理解为手指点下去到松开手指的时间,单位为毫秒。
用法如下:
driver.tap([(100, 20), (100, 60), (100, 100)], 500)
例子表示同时点击屏幕坐标为(100, 20)
,(100, 60)
,(100, 100)
的三个点。
清除文本
清除文本 clear() 方法,与 selenium 中的方法相同,如果当前是可输入的文本元素,则清除其中的已输入内容。
主要用于去除输入框中的默认值,以免影响正常的输入。
用法如下:
driver.find_element_by_id('com.insthub.ecmobile:id/login_name').clear()