Python osascript 使用额外的引号

Python osascript using extra quotation marks

尝试使用以下代码(在 applescript 中运行良好)在 Python 中运行,这对 Python 来说是相当新的,所以我不确定如何让这个字符串正常工作。

def getChromeSource():
    cmdGetSource = """
    osascript -e 'tell application "Google Chrome" to set source to execute front window's active tab javascript "document.documentElement.outerHTML"'
    """
    proc = subprocess.Popen([cmdGetSource], stdout=subprocess.PIPE, shell=True)
    (source, err) = proc.communicate()

我确信问题出在

window's

我试过:

window\s

但这行不通我想我的引号太多了而且我不确定如何正确编写字符串,这可能是一个非常简单的方法所以希望有人能引导我朝着正确的方向前进。

您应该传递要执行的参数列表,而不是创建一个将所有参数放在一起的字符串。您也不应该使用 shell=true 标志。

cmd_args = ['osascript', '-e', 'tell application "Google Chrome" to set source to execute front window\'s active tab javascript "document.documentElement.outerHTML"']
proc = subprocess.Popen(cmd_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
source, err = proc.communicate()