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

qni6mghb  于 2023-03-06  发布在  Go
关注(0)|答案(1)|浏览(68)

**要求:**我必须登录到一个特定的网站为特定的任务。一旦我们手动登录,它是踢出我,由于会话到期后,一定的时间。所以,然后,我必须写一个脚本来加载网站,如果我看到登录页面,我必须输入凭据并登录它,如果我没有看到登录页面,那么这意味着它已经登录,我什么也不做。

为此,我一直在尝试写一个selenium脚本来启动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())`
jm81lzqq

jm81lzqq1#

在Selenium中加载默认浏览器可通过以下方式实现:

options = webdriver.ChromeOptions()

options.add_argument(
    "user-data-dir=<give path of default browser profile>") 

# user-data-dir location for win: C:\\Users\\username\\AppData\\Local\\Google\\Chrome\\User Data\\Default
# user-data-dir location for linux: /home/(user)/.config/google-chrome/Profile/ 

driver = webdriver.Chrome(executable_path="/path/to/driver/chromedriver",
                          chrome_options=options)

# Open the URL
driver.get('https:url.com/')

按照上面的步骤,在代码中相应地调整它,看看它是否有效。

相关问题