启动的 Selenium 脚本加载一个 url 以检查我们是否可以在远程 linux 服务器上的现有 chrome 应用程序(及其历史记录)中获得登录页面

问题描述 投票:0回答:0

要求: 我必须登录特定网站才能执行特定任务。一旦我们手动登录,由于会话在一定时间后到期,它会把我踢出去。那么,我必须编写一个脚本来加载网站,如果我看到登录页面,我必须输入凭据并登录,如果我没有看到登录页面,则意味着它已经登录,我什么都不做。

为此,我一直在尝试编写一个 selenium 脚本来启动具有所需 url 的 chrome 应用程序,看看我是否可以获得登录页面。但是,我遇到了一个问题。

问题: 每次我运行 selenium 脚本时,它都会启动一个新的 chrome 窗口,该窗口没有服务器现有 chrome 应用程序的任何历史详细信息。因此,每次我加载网站时,它都会加载登录页面,selenium 似乎正在启动一种新的隐身类型的窗口,它没有服务器现有 chrome 应用程序的历史记录。

我在 linux 服务器上运行它。这对我没有帮助。我在 google 和 stackoverflow 中搜索了很多,在任何地方我都看到如何在 selenium 脚本启动后附加到相同的 chrome 会话,但我找不到如何从服务器中已有的 chrome 应用程序开始。

有人可以帮忙吗? 我附上代码,我试过的..

import sys
import time

import typer
import requests

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait

from typing import Tuple


chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--window-size=1920x1080")
chrome_options.add_argument("--verbose")
# chrome_options.add_argument("--headless")
chrome_options.add_argument("user-data-dir=selenium") 
chrome_options.add_argument("--start-maximized")

driver = webdriver.Chrome(options=chrome_options)


def login_dr_paul_account():
    driver.get('https://*****.*****.com/#/')
    driver.find_element("id", "username").send_keys("username")
    driver.find_element("id", "password").send_keys("password")
    driver.find_element("id", "submitButton_label").click()

if __name__ == "__main__":
    # typer.run(main)
    typer.run(login_dr_paul_account())`
google-chrome selenium-webdriver selenium-chromedriver
© www.soinside.com 2019 - 2024. All rights reserved.