clickElementByXpath方法
def clickElementByXpath(self, xpath, visibleItemXpath=None, byUiAutomator=False):
"""
默認滑動點爲屏幕的中心,且邊距爲整個屏幕。當有container時,傳入container中任意一個當前可見item的xpath,之後會將目標滑到該可見item的位置
:param xpath: 要滑動到屏幕中控件的xpath
:param visibleItemXpath: container中當前可見的一個xpath
:return:
"""
self.logger.info('xpath ---> ' + xpath)
if self.isElementExist(xpath):
# self.scrollToElementByXpath(xpath, visibleItemXpath) #zx08443 目前不需要,暫時關閉這個功能
sendStr = self._pageOperator.getElementRect(xpath)
self._networkHandler.send(sendStr)
x = self._getRelativeDirectionValue('x')
y = self._getRelativeDirectionValue('y')
self.logger.debug('clickElementByXpath x:' + str(x) + ' y:' + str(y))
if not byUiAutomator:
clickCommand = self._pageOperator.clickElementByXpath(x, y)
return self._networkHandler.send(clickCommand)
else:
xPx, yPx = self.changeDp2Px(x, y)
self.d.click(xPx, yPx)
# 加了else語句,如果元素不存在,則直接拋異常,不繼續執行用例。
else:
self.WebSocketConnectionClosedException("對不起,該元素未抓取到,請您查看當前頁面元素位置是否有變動!")
有疑問的加V:zx1187463903
異常的處理。
或者直接在用例裏面這樣判斷,如果該元素存在,則繼續執行,否則拋出異常,用例執行結束。
if self.wxDriver.isElementExist('XXXXXX'):
pass
else:
self.wxDriver.WebSocketConnectionClosedException("對不起,當前元素不存在!")