Как хранить и получать пароли браузера с помощью PlaywrightPython

Программы на Python
Anonymous
Как хранить и получать пароли браузера с помощью Playwright

Сообщение Anonymous »

Привет!
У меня есть случай пользователя, в котором мне нужно сохранить учетные данные в диспетчере паролей Chrome и других браузеров. Я пытался использовать Playwright для достижения этой цели, но, к сожалению, он не сохраняет пользователя и пароль для данного сайта.
Я хочу убедиться, что это работает, — открыть Chrome после выполнения и видите, что пароль хранится в диспетчере паролей.
Буду признателен за помощь.
Код (обратите внимание, в настоящее время он реализован только для Chrome, так что я это знаю.. не надо мне сообщать, что с чем-то еще не работает :)):
import argparse
from playwright.sync_api import sync_playwright

class BrowserAutomation:
def __init__(self, user_data_dir, username, password, browser_type='chromium', headless=True):
self.user_data_dir = user_data_dir
self.username = username
self.password = password
self.browser_type = browser_type
self.headless = headless

def load_passwords(self):
with sync_playwright() as p:
if self.browser_type == 'chromium':
browser = p.chromium.launch_persistent_context(self.user_data_dir, headless=self.headless, args=['--enable-features=PasswordImport','--password-store=basic'], channel="chrome")
elif self.browser_type == 'firefox':
browser = p.firefox.launch_persistent_context(self.user_data_dir, headless=self.headless)
elif self.browser_type == 'webkit':
browser = p.webkit.launch_persistent_context(self.user_data_dir, headless=self.headless)
elif self.browser_type == 'edge':
browser = p.chromium.launch_persistent_context(self.user_data_dir, headless=self.headless, channel='msedge')
else:
raise ValueError(f"Unsupported browser type: {self.browser_type}")

page = browser.new_page()

# Verify if the password was saved
page.goto('chrome://password-manager/passwords')
page.click('#addPasswordButton')
page.fill('input[aria-label="Site"]', 'https://www.google.com')
page.fill('input[aria-label="Username"]', self.username)
page.fill('input[aria-label="Password"]', self.password)
page.click('#addButton')

if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Load passwords to browser.')
parser.add_argument('-data_dir', type=str, help='User data directory')
parser.add_argument('-u', type=str, help='Username for login')
parser.add_argument('-p', type=str, help='Password for login')
parser.add_argument('-browser', type=str, choices=['chromium', 'firefox', 'webkit', 'edge'], help='Type of browser')
parser.add_argument('--headless', action='store_true', help='Run browser in headless mode')

args = parser.parse_args()

automation = BrowserAutomation(user_data_dir=args.data_dir,
username=args.u,
password=args.p,
browser_type=args.browser,
headless=args.headless)
automation.load_passwords()

print("Browser automation and Flask server have both terminated.")


Подробнее здесь: https://stackoverflow.com/questions/788 ... playwright

Вернуться в «Python»