【问题标题】:What does execute_script() in Selenium doesSelenium 中的 execute_script() 有什么作用
【发布时间】:2021-03-07 07:42:38
【问题描述】:
browser.execute_script("window.open('about:blank', 'tab2');")
browser.switch_to.window("tab2")
browser.get('http://bing.com')

我正在网上搜索在python中使用selenium打开新标签的方法,ctrl + t的方法不起作用在 chrome 上,所以我偶然发现了上面的代码,但是我无法理解 'excute_script' 的作用。

【问题讨论】:

标签: javascript python selenium selenium-webdriver webdriver


【解决方案1】:

execute_script 方法允许执行作为字符串参数传递的 JavaScript

请注意,您可以使用 arguments 将数据从 Python 代码传递到 JavaScript 代码,例如

hello = "Hello"
friends = " friends"

browser.execute_script('alert(arguments[0], arguments[1]);', (hello,  friends))

【讨论】:

    【解决方案2】:

    execute_script()

    execute_script() 在当前窗口/框架中同步执行 JavaScript

    execute_script(script, *args)
    
    where:
        script: The JavaScript to execute
        *args: Any applicable arguments for your JavaScript.
        
    

    这个方法是defined as:

       def execute_script(self, script, *args):
           """
           Synchronously Executes JavaScript in the current window/frame.
    
           :Args:
            - script: The JavaScript to execute.
            - \\*args: Any applicable arguments for your JavaScript.
    
           :Usage:
               ::
    
                   driver.execute_script('return document.title;')
           """
           if isinstance(script, ScriptKey):
               try:
                   script = self.pinned_scripts[script.id]
               except KeyError:
                   raise JavascriptException("Pinned script could not be found")
    
           converted_args = list(args)
           command = None
           if self.w3c:
               command = Command.W3C_EXECUTE_SCRIPT
           else:
               command = Command.EXECUTE_SCRIPT
    
           return self.execute(command, {
               'script': script,
               'args': converted_args})['value']
    

    示例

    几个例子:

    • 打开一个新的空白标签

      driver.execute_script("window.open('','_blank');")
      
    • 要打开一个带有 url 的新 标签

      driver.execute_script("window.open('https://www.google.com');")
      
    • 检索页面标题:

      driver.execute_script('return document.title;')
      
    • 滚动显示元素:

      driver.execute_script("arguments[0].scrollIntoView(true);",element)
      

    参考

    您可以在以下位置找到一些相关的详细讨论:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 2019-09-04
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 2021-09-09
      相关资源
      最近更新 更多