吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1359|回复: 20
收起左侧

[资源求助] 跪求selenium怎么每次都打开同一个浏览器

[复制链接]
Edison918 发表于 2022-2-17 18:22
25吾爱币
本帖最后由 Edison918 于 2022-2-17 19:17 编辑

windows系统  chrome浏览器
正常我用selenium的时候,每次运行程序,弹出来的浏览器好像都是新的实例,那个网站绑定账号和浏览器,最多能登录3个浏览器,所以我需要selenium每次运行打开的都是同一个浏览器实例,求助应该怎么处理
麻烦带完整代码
如果好用,可以追加悬赏

最佳答案

查看完整内容

[mw_shl_code=python,true]# -*- coding: utf-8 -*- # @Time : 2022/2/17 19:31 # @AuThor : jklujklu # @Email : jklujklu@126.com # @file : test.py # @Software: PyCharm import _thread import subprocess import time from selenium import webdriver from selenium.webdriver.chrome.options import Options class Test: def __init__(self): self.driver = None self.chrome_dr ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jklujklu 发表于 2022-2-17 18:22
本帖最后由 jklujklu 于 2022-2-17 19:47 编辑

[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
# [url=home.php?mod=space&uid=238618]@Time[/url] : 2022/2/17 19:31
# [url=home.php?mod=space&uid=686208]@AuThor[/url] : jklujklu
# [url=home.php?mod=space&uid=621973]@Email[/url] : [url=mailto:jklujklu@126.com]jklujklu@126.com[/url]
# [url=home.php?mod=space&uid=267492]@file[/url] : test.py
# @Software: PyCharm
import _thread
import subprocess
import time

from selenium import webdriver
from selenium.webdriver.chrome.options import Options


class Test:
    def __init__(self):
        self.driver = None
        self.chrome_driver = r'd:\chromedriver.exe'
        self.chrome_path = 'C:\Program Files\Google\Chrome\Application\chrome.exe'

    def open_chrome(self):
        subprocess.run([self.chrome_path, '--remote-debugging-port=9222'])

    def init_driver(self):
        _thread.start_new_thread(self.open_chrome, ())
        time.sleep(3)
        chrome_options = Options()
        chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
        self.driver = webdriver.Chrome(executable_path=self.chrome_driver, chrome_options=chrome_options)

    def run(self):
        self.init_driver()
        self.driver.get("https://www.bilibili.com/")


if __name__ == '__main__':
    Test().run()


我这边测试是可以链接的,步骤是:
1. cmd打开chrome
2. selenium连接调试端口

如果带调试的chrome已经打开了,就把代码里thread线程注释掉,每次运行确保只存在一个chrome
ss0001 发表于 2022-2-17 18:26
需要指定用户数据存储目录,以python为例:

option.add_argument('--user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data') #设置成用户自己的数据目录

参考:
https://www.cnblogs.com/xmlbw/p/4498113.html
 楼主| Edison918 发表于 2022-2-17 18:28
ss0001 发表于 2022-2-17 18:26
需要指定用户数据存储目录,以python为例:

option.add_argument('--user-data-dir=C:%users\Administra ...

按这个做了,每次运行弹出来的都不是同一个浏览器
 楼主| Edison918 发表于 2022-2-17 18:30
ss0001 发表于 2022-2-17 18:26
需要指定用户数据存储目录,以python为例:

option.add_argument('--user-data-dir=C:%users\Administra ...

他只是调用我的信息,不是每次都保证是同一个浏览器
swsunlong 发表于 2022-2-17 18:37
SELENIUM 除了可以打开一个新的浏览器,同时也可以注入一个已经打开的浏览器,你用SELENIUM注入方式去控制就行了
 楼主| Edison918 发表于 2022-2-17 18:42
swsunlong 发表于 2022-2-17 18:37
SELENIUM 除了可以打开一个新的浏览器,同时也可以注入一个已经打开的浏览器,你用SELENIUM注入方式去控制 ...

麻烦提供一下完整代码
jklujklu 发表于 2022-2-17 18:58
Edison918 发表于 2022-2-17 18:42
麻烦提供一下完整代码

chrome_opts = webdriver.ChromeOptions()
chrome_opts.debugger_address = "127.0.0.1:9222"
self.driver = webdriver.Chrome(options=chrome_opts)


主要就是这个代码,注入的前提是打开的浏览器开启了9222debug端口

浏览器开启debug可以在cmd里运行下面的命令:

chrome.exe --remote-debugging-port=9222

ConMiko 发表于 2022-2-17 19:02
ChromeOptions options = new ChromeOptions();
options.setBinary("改成浏览器exe的路径");

看你要什么浏览器了 固定要一个浏览器如果不指定路径的话加系统变量应该是不会使用别的浏览器的

 楼主| Edison918 发表于 2022-2-17 19:07
ConMiko 发表于 2022-2-17 19:02
ChromeOptions options = new ChromeOptions();
options.setBinary("改成浏览器exe的路径");

不是固定浏览器,是固定浏览器实例
快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-25 02:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表