【问题标题】:Python var inside selenium driver.execute_scriptselenium driver.execute_script 中的 Python var
【发布时间】:2019-11-14 05:51:25
【问题描述】:

我正在为机器人框架创建一些自定义关键字,但遇到了一个问题。

如果我给 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,在 robotsframework 中定义为参数。

有人知道这是否可行吗?

【问题讨论】:

    标签: javascript python arguments robotframework keyword


    【解决方案1】:

    您可以将参数传递给 execute_script 方法,并使用 arguments[x] 语法在 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(arguments[0]).click()", arg)
    

    【讨论】:

      【解决方案2】:

      找到解决方案:

      @keyword('Checkbox select')
          def check(self, arg):
              driver = BuiltIn().get_library_instance('SeleniumLibrary')._current_browser()
              driver.execute_script("document.getElementById('"+arg+"').click()")
      

      谢谢大家。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-06
        • 2018-09-01
        • 2023-02-11
        • 1970-01-01
        • 2020-08-20
        • 2020-01-16
        • 1970-01-01
        相关资源
        最近更新 更多