javascript - selenium driver.execute_script 中的 Python var
问题描述
我正在为机器人框架创建一些自定义关键字,但遇到了一个问题。
如果我给 javascript 一个参数,我有以下关键字可以工作,例如:
from robot.api.deco import keyword
from robot.libraries.BuiltIn import BuiltIn
from SeleniumLibrary import SeleniumLibrary
class roboJSlib:
@keyword('Checkbox select')
def check(self, arg):
driver = BuiltIn().get_library_instance('SeleniumLibrary')._current_browser()
driver.execute_script("document.getElementById('preventivo_privacy_accetto_informative').click()")
我希望脚本将“arg”作为 id,它在机器人框架中定义为参数。
有谁知道这是否可能?
解决方案
您可以将参数传递给execute_script
方法并使用语法在 JavaScript 中引用它们arguments[x]
,因此在您的情况下,它将是:
from robot.api.deco import keyword
from robot.libraries.BuiltIn import BuiltIn
from SeleniumLibrary import SeleniumLibrary
class roboJSlib:
@keyword('Checkbox select')
def check(self, arg):
driver = BuiltIn().get_library_instance('SeleniumLibrary')._current_browser()
driver.execute_script("document.getElementById(arguments[0]).click()", arg)
推荐阅读
- nativescript - Branch.io 与 nativescript 集成?
- ambari - ambari-agent 无法访问 ambari-server
- django - Django:使用列表中的项目而不在视图中执行for循环
- mysql - 如何在我的计数中获得满足语句的值?
- java - 调用 REST 控制器方法返回 404 null
- ios - 呈现模态视图控制器时的黑色背景
- laravel - Stripe-Vue 支付 POST 500 未兑现承诺
- c# - 如何绑定 WPF listview 项目的背景颜色?
- c# - WPF Datagrid 添加列表
作为列 - javascript - 公告结束时切换 aria-live?