首页 > 解决方案 > 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,它在机器人框架中定义为参数。

有谁知道这是否可能?

标签: javascriptpythonargumentsrobotframeworkkeyword

解决方案


您可以将参数传递给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)

推荐阅读