Robot framework 降低了使用的門(mén)檻焦除,同時(shí)也降低了代碼的靈活性,擴(kuò)展起來(lái)不那么方便作彤,到底還能不能擴(kuò)展膘魄,答案的肯定乌逐。
robotframework-appiumlibrary是基于Appium-Python-Client的關(guān)鍵字封裝,我們擴(kuò)展的是關(guān)鍵字的時(shí)長(zhǎng)创葡,所以我們需要找到robotframework-appiumlibrary的源碼進(jìn)行修改
1.github下載源碼
https://github.com/serhatbolsu/robotframework-appiumlibrary
通過(guò)git或者直接下載壓縮包都是可以的
git clone https://github.com/jollychang/robotframework-appiumlibrary.git
2.修改源碼
用pycharm把robotframework-appiumlibrary工程打開(kāi)浙踢,我們?cè)趉eywords包下找到_touch.py就可以找到long_press的相關(guān)代碼
3.分析源碼
查看如下源碼我們發(fā)現(xiàn)long_press(element)只有一個(gè)參數(shù)是界面元素,壓根沒(méi)有時(shí)間時(shí)間相關(guān)的參數(shù)設(shè)置灿渴,所以我們基本確定在這里動(dòng)手了基本可以解決問(wèn)題
def long_press(self, locator):
""" Long press the element """
driver = self._current_application()
element = self._element_find(locator, True, True)
long_press = TouchAction(driver).long_press(element)
long_press.perform()
4.修改源碼
查看Appium-Python-Client的API之后我們會(huì)發(fā)現(xiàn)TouchAction(driver).long_press(element)方法有一個(gè)duration的參數(shù)是來(lái)控制時(shí)長(zhǎng)的成黄,這樣基本上找到解決問(wèn)題的方法了
def long_press(self, locator,times):
""" Long press the element with times is second
Args:
- ``locator`` - find element by locator
- ``times`` - long press the element times is second
"""
driver = self._current_application()
element = self._element_find(locator, True, True)
TouchAction(driver).long_press(element,duration=int(times)*1000).perform()
5.安裝修改的代碼
卸載已經(jīng)安裝的robotframework-appiumlibrary
#卸載
pip uninstall robotframework-appiumlibrary
#查看是否已經(jīng)卸載
pip list
安裝修改后的robotframework-appiumlibrary
#進(jìn)入工程的根目錄
cd robotframework-appiumlibrary
#執(zhí)行安裝命令
python setup.py install
6.驗(yàn)證是否安裝成功
打開(kāi)RIDE,F(xiàn)5就可以查看逻杖,我們會(huì)發(fā)現(xiàn)關(guān)鍵字的注釋與參數(shù)都發(fā)生了改變奋岁,也就是我們對(duì)源碼的改動(dòng)產(chǎn)生了效果