天天看點

Appium架構中Android下EditText内容清除

  找到了如下方法:

  在這之前我們可以用 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/

繼續閱讀