[英]selenium-python click on coordinates: "unsupported operand type(s) for +"
我在 Robot Framework 上进行自动化测试,我需要单击 map 上的坐标。
我写了这个:
def click_at_coordinates(pos_x, pos_y):
actions = ActionChains(get_driver())
my_map = get_driver().find_element_by_xpath("//div[@id='map']/div/div[4]/div")
actions.move_to_element_with_offset(my_map, pos_x, pos_y).click().perform()
get_driver().find_element_by_xpath("//button[@type='submit']").click()
并收到此错误消息:
TypeError: unsupported operand type(s) for +: 'float' and 'str'
谢谢!
如果需要的话:
def get_driver():
sl = BuiltIn().get_library_instance("SeleniumLibrary")
return sl.driver
感谢您的所有回答!
将您在方法中获得的 arguments 转换为整数:
def click_at_coordinates(pos_x, pos_y):
pos_x = int(pos_x)
pos_y = int(pos_y)
# the rest
,因为您很可能将一个作为字符串发送,另一个作为测试用例中的浮点数发送(根据异常消息判断)。
您还可以使用类型提示,Robot Framework 将尝试自动转换您正在调用的 arguments:
def click_at_coordinates(pos_x: int, pos_y:int ) -> None:
@Prophet 找到的答案:问题出在机器人文件中
${X1} Set Variable ${{ random.randint(1, 50) }}
${Y1} Set Variable ${{ random.randint(1, 50) }}
${X2} Set Variable ${{ random.randint(1, 50) }}
${Y2} Set Variable ${{ random.randint(1, 50) }}
完美配合
${X1} ${{ random.randint(1, 50) }}
${Y1} ${{ random.randint(1, 50) }}
${X2} ${{ random.randint(1, 50) }}
${Y2} ${{ random.randint(1, 50) }}
谢谢大家的回答和帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.