开发者社区> 问答> 正文

机器人框架-将Appium驱动程序传递给python脚本

我正在使用Python将Robot Framework与Appium集成。但是我不知道如何将在Robot Framework中创建的Appium驱动程序传递给自定义python脚本。

我的环境:

Mac OS-小牛 Appium 1.2(通过家庭酿造安装) 最新的机器人框架(通过pip安装) 最新的机器人框架Appium库(通过pip安装) 我在Python中有一个有效的Appium脚本,但是我想开始使用Robot Framework来处理实际测试。

适用于python脚本的部分代码:

wd = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
wd.find_element_by_name("Start").click()
wd.find_element_by_xpath("//UIAApplication[1]/UIAWindow[1]/UIATableView[1]/UIATableCell[1]").click()
wd.execute_script("var vKeyboard = target.frontMostApp().keyboard(); vKeyboard.typeString(\"Test Text\");")
wd.execute_script("var vKeyboard = target.frontMostApp().keyboard(); vKeyboard.buttons()['Return'].tap();")

如您所见,由于应用程序的工作方式,我决定将execute_script用作脚本的一部分。

用于机器人框架的Appium库未公开execute_script,因此我需要在python库中编写自己的库。

这是我的机器人测试脚本的开始,直到我需要execute_script为止,它都可以使用:

TestStart
    Open Application   ${REMOTE_URL}    ${PLATFORM_NAME}    ${PLATFORM_VERSION}    ${DEVICE_NAME}    ${APP}
    Click Element    name=Start
    Click Element    xpath=//UIAApplication[1]/UIAWindow[1]/UIATableView[1]/UIATableCell[1]

我的问题是如何获取在Open Application中创建的驱动程序实例并将其传递给Python脚本?

我有一个具有以下内容的python脚本:

def KeyboardType(driver):
    driver.execute_script("var vKeyboard = target.frontMostApp().keyboard(); vKeyboard.typeString(\"hi there\");")

但是,我似乎无法将驱动程序从Robot Framework脚本传递到此python脚本。

我尝试通过以下方式将“打开应用程序”设置为变量:

${Driver}  Open Application   ${REMOTE_URL}    ${PLATFORM_NAME}    ${PLATFORM_VERSION}    ${DEVICE_NAME}    ${APP}
KeyboardType  ${Driver}

但我收到了错误:

AttributeError:“ str”对象没有属性“ execute_script”

我还尝试将“获取当前上下文”的结果传递到python脚本中,但随后得到:

AttributeError:“ unicode”对象没有属性“ execute_script”

如何将由Robot Framework创建的驱动程序传递到python脚本中?

展开
收起
祖安文状元 2020-02-22 15:26:53 623 0
1 条回答
写回答
取消 提交回答
  • 我目前不使用鸦片,所以我无法给出确切的答案。但是,有人对硒提出了类似的问题,即有人需要实际的webdriver对象。请参阅将现有Webdriver对象传递给Robot Framework的自定义Python库的问题

    简短的答案是,您可以尝试对appium库进行子类化,以便您的关键字可以访问所有appium内部构件,或者可以通过调用来获取库的句柄BuiltIn().get_library_instance('Selenium2Library。

    有关后一种技术的更多信息,请参见《Robot Framework用户指南》中的从Robot Framework获取活动库实例。

    2020-02-24 09:57:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载