我使用python来实现测试。我需要保持登录过程,这样我就不会每次都登录。我使用add_argument(“--用户-数据-dir= chrome”)来保存铬数据,但是当我想使用无头模式时,保存的数据没有保持登录过程。
class Browser:
def __init__(self, headless):
self.chrome_options = webdriver.ChromeOptions()
self.chrome_options.headless = headless
self.chrome_options.add_argument('--hide-scrollbars')
self.chrome_options.add_argument('--disable-gpu')
self.chrome_options.add_argument("--log-level=3")
self.chrome_options.add_argument("--user-data-dir=chrome-data")
self.chrome_options.add_argument('profile-directory=profile')
self.chrome_options.add_experimental_option("detach", True)
self.driver = webdriver.Chrome(executable_path="./chromedriver", options=self.chrome_options)
self.driver.implicitly_wait(10)
self.driver.maximize_window()发布于 2022-05-11 23:33:32
我最近也有同样的问题。据我所知,无头和非无头铬有两个单独的用户数据,即使你指定了同一个文件夹(错误?特征?很难分辨,即使是在谷歌搜索之后)。对此我无能为力。
总之,这是我最后所做的。首先,添加以下内容:
chrome_options.add_argument('--remote-debugging-port=9222')然后,访问页面并给自己5分钟登录的代码:
driver.get("http://instagram.com")
time.sleep(300)当运行代码时,在等待阶段,转到您通常的Chrome (非匿名),即chrome:// the页面。应该已经预先配置了它--应该启用“发现网络目标”,如果您按下“配置.”,"localhost:9222“应该已经在列表中了(如果没有,添加它并启用复选框)。下面,您应该看到您的活动浏览器会话,按“检查”,窗口将打开,呈现您的无头浏览器所拥有的内容。就像这样:图像
所以是的,在您的第一次尝试,这样做,登录到您的呈现会话,然后它应该保存,您应该能够继续工作之后。
实际上,我注册是为了感谢可以打开/显示/呈现无头硒会话吗?的凯尔,因为他提到,自从Chrome100之后,就有了Chrome100,而不是http://localhost:9222 (后者只显示了一个白色屏幕,我想知道为什么不能工作)。所以我想感谢他,但是stackoverflow说我没有足够的“声誉”或者其他什么。哦,好吧。因此,我决定就最近的一个相关问题写一封回信。如果能帮上忙就告诉我!
发布于 2022-05-01 15:34:35
使用无头铬时,一些网站会检测无头模式,防止自动上身。
将此添加到您的铬选项中
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36")这应该会改变您的用户代理,并且应该在autologin中提供帮助,如果问题仍然存在,您应该尝试指定默认的chrome配置文件目录。
self.chrome_options.add_argument("user-data-dir=C:\\Path") #Path to your chrome profile你应该用这个
self.chrome_options.add_argument("--headless")https://stackoverflow.com/questions/72075183
复制相似问题