我正在尝试将用python编写的自定义关键字导入robotframework。
我遇到以下情况:
具有以下内容的file.robot:
Library SeleniumLibrary
Library ../../../python_scripts/mapActions.py
Drag and drop //*[@id="map"] -50 -50
mapActions.Drag and drop //*[@id="map"] -50 -50
mapActions.MapActions.Drag and drop //*[@id="map"] -50 -50
和mapActions.py:
from SeleniumLibrary import SeleniumLibrary
from SeleniumLibrary.base import keyword
class MapActions(SeleniumLibrary):
@keyword
def drag_and_drop_on_element_with_offset(self, locator, x, y):
map_locator = self.find_element_by_xpath(locator)
运行file.robot后,输出:
1)找不到名称为“拖放带有偏移量的元素”的关键字。
2)没有名称为'mapActions.drag的关键字并拖放到具有 抵消”。
3)没有名称为'mapActions.MapActions.d的关键字 找到具有偏移量的元素。
使用Python 3.7.2 RobotFramework 3.1.1
尝试这三个选项导致不确定应该考虑哪个选项...
我做错了什么?为什么file.robot无法运行“拖放”功能?
答案 0 :(得分:0)
确切的函数名称只能用作关键字。
在.py文件中 从SeleniumLibrary导入SeleniumLibrary 从SeleniumLibrary.base导入关键字
MapActions(SeleniumLibrary)类: @关键词 def drag_and_drop_on_element_with_offset(self,locator,x,y): map_locator = self.find_element_by_xpath(locator)
在Robot Framework文件中 库<>
drag_and_drop_on_element_with_offset // * [@@ id =“ map”] -50 -50
在上面的示例中,可以将与函数名称完全匹配的名称用作关键字名称。
以下是经过测试的有效示例 *设置* 库../../UUID.py
*测试用例* 创建新的许可证模型 $ {uuid} =生成UUID
Python函数 def生成UUID(自己): “”“生成uuid”“” 返回uuid.uuid4()