找到了如下方法:
在这之前我们可以用 press_keycode的方式实现删除,删除速度比忽略 clear()抛出的异常要快很多。
大概思路是:
1. 点击要清除的edit field
2. 全选
3. 删除
element.click()
sleep(1) #waiting for 1 second is important, otherwise 'select all' doesn't work. however, it perform this from my view
self.driver.press_keycode(29,28672) # 29 is the keycode of 'a', 28672 is the keycode of meta_ctrl_mask
self.driver.press_keycode(112) # 112 is the keycode of forward_del, of course you can also use 67“
我试了一下上面的方法,没有什么效果,只好继续寻找了。搜了好多网页,在一个网页上看到了一个不错的办法,不过可以打开的网页太多了,一忙忘记是哪儿个网页了。具体的方案就是:
先将光标移到文本框最后,然后取一下edittext中文本的长度,最后一个一个地删除文本。
具体示例如下:
def edittextclear(self,text):
'''
请除edittext文本框里的内容
@param:text 要清除的内容
driver.keyevent(123)
for i in range(0,len(text)):
driver.keyevent(67)
使用实例:
adr=driver.find_element_by_id('com.subject.zhongchou:id/edit_person_detailaddress') #找到要删除文本的edittext元素
adr.click()#激活该文本框
context2=adr.get_attribute('text')#获取文本框里的内容
self.edittextclear(context2)#删除文本框中是内容
最新内容请见作者的github页:http://qaseven.github.io/