使用selenium捕获Chrome控制台上的console.log输出



我有一个网站列表,我正在上面进行一些测试和实验。我使用selenium访问列表中的一个网站,并使用MITMproxy脚本将一段JS注入到一些文件中。这个注入的代码执行一些测试,并使用JS中的console.log((将结果输出到chrome控制台上,类似于

console.log(results of the injected JS)

注入是成功的,当我运行实验时,我想要的结果确实出现在Chrome控制台上。我面临的问题是,当我试图捕获console.log输出的chrome控制台时,它没有成功。它将捕获来自chrome控制台的警告和错误消息,但不会捕获console.log输出。目前我是这样做的。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import NoSuchElementException, TimeoutException, StaleElementReferenceException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
option = Options()
option.add_argument('start-maximized')
# Specify the proxy
option.add_argument('--proxy-server=%s:%s' % (proxy_host, proxy_port))
# enable browser logging
d = DesiredCapabilities.CHROME
# d['loggingPrefs'] = { 'browser':'ALL' }
d['goog:loggingPrefs'] = { 'browser':'ALL' }

# Launch Chrome.
driver = webdriver.Chrome(options=option, executable_path = './chromedriver', desired_capabilities=d, service_args=["--verbose", "--log-path=./js_inject/qc1.log"])
for url in list_urls:
# Navigate to the test page
driver.get(url)
sleep(15)
# in this 15 seconds, the MITMproxy will inject the code and the injected code will output on chrome console.
for entry in driver.get_log('browser'):
print(entry)

有人能告诉我我可能犯了什么错误,或者执行这项任务的替代方法吗。非常感谢。

请原谅我的语法错误。

options.add_experimental_option('excludeSwitches', ['enable-logging'])
dc = DesiredCapabilities.CHROME
dc["goog:loggingPrefs"] = {"browser":"INFO"}
self.driver = webdriver.Chrome(chrome_options=options, desired_capabilities=dc)

我前一段时间设法让它发挥了作用,所以不确定到底是什么做的,但我认为这是一个实验性的选择;anable logging";。

相关内容

  • 没有找到相关文章

最新更新