selenium chromedriver 读取所有 console.log 参数
selenium chromedriver read all console.log parameters
我用 selenium chrome 驱动程序打开网站并从控制台读取。问题是我只能看到第一个参数。例如,这个 console.log("first")
给我预期的 "first",但是 console.log("first", "second")
只给我 "first"。
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
options = Options()
options.add_argument('--load-extension=./extension')
options.add_argument("--disable-notifications")
options.add_argument("--start-maximized")
d = DesiredCapabilities.CHROME
d['loggingPrefs'] = {'browser': 'ALL'}
self.browser = webdriver.Chrome(chrome_options=options, desired_capabilities=d)
我希望我应该能够读取所有参数,就像我在控制台中看到的那样 window。 selenium chrome 驱动程序是否有任何选项可以提供所有这些选项?
你的代码是正确的,也许你在运行你的代码时没有看到它。
我将在下面演示一个示例,使用与您相同的配置并获取所有控制台参数输出
import re
from selenium import webdriver
from selenium.webdriver import DesiredCapabilities
dc = DesiredCapabilities.CHROME
dc['loggingPrefs'] = {'browser': 'ALL'}
driver = webdriver.Chrome(desired_capabilities=dc)
# Prints 'first'
driver.execute_script("console.log('first')")
# Prints 'first' 'second'
driver.execute_script("console.log('first', 'second')")
# Filtering log by key 'first'
logs = list(filter(lambda l: 'first' in l['message'], driver.get_log('browser')))
for log in logs:
source = log['source']
parameters = re.findall(r'".*?"', log['message'])
# Prints console output and parameters
print(source, *parameters)
driver.quit()
输出控制台:
console-api "first"
console-api "first" "second"
我用 selenium chrome 驱动程序打开网站并从控制台读取。问题是我只能看到第一个参数。例如,这个 console.log("first")
给我预期的 "first",但是 console.log("first", "second")
只给我 "first"。
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
options = Options()
options.add_argument('--load-extension=./extension')
options.add_argument("--disable-notifications")
options.add_argument("--start-maximized")
d = DesiredCapabilities.CHROME
d['loggingPrefs'] = {'browser': 'ALL'}
self.browser = webdriver.Chrome(chrome_options=options, desired_capabilities=d)
我希望我应该能够读取所有参数,就像我在控制台中看到的那样 window。 selenium chrome 驱动程序是否有任何选项可以提供所有这些选项?
你的代码是正确的,也许你在运行你的代码时没有看到它。
我将在下面演示一个示例,使用与您相同的配置并获取所有控制台参数输出
import re
from selenium import webdriver
from selenium.webdriver import DesiredCapabilities
dc = DesiredCapabilities.CHROME
dc['loggingPrefs'] = {'browser': 'ALL'}
driver = webdriver.Chrome(desired_capabilities=dc)
# Prints 'first'
driver.execute_script("console.log('first')")
# Prints 'first' 'second'
driver.execute_script("console.log('first', 'second')")
# Filtering log by key 'first'
logs = list(filter(lambda l: 'first' in l['message'], driver.get_log('browser')))
for log in logs:
source = log['source']
parameters = re.findall(r'".*?"', log['message'])
# Prints console output and parameters
print(source, *parameters)
driver.quit()
输出控制台:
console-api "first"
console-api "first" "second"