selenium在已经打开的浏览器上进行UI自动化
适用于需要绕开登陆验证的场景
摘抄于链接: https://www.fyovo.com/6748.html
操作步骤
步骤一:创建文件夹
在电脑的F盘或者F盘或者合适的盘创建一个文件夹,用于存储我们使用Selenium启动Chrome的自动化配置文件AutomationProfile
例如:在F盘创建了一个名为 SeleniumChrome 的文件夹,路径为 F:\SeleniumChrome
:
步骤二:找到谷歌浏览器路径
取出来路径:C:\Users\Administrator\AppData\Local\Google\Chrome\Application
然后在当前文件夹打开cmd
然后就可以在任意位置打开cmd直接输入命令:
chrome.exe --remote-debugging-port=9233 --user-data-dir=“F:\SeleniumChrome”
这里端口号随意,只要是没有被其他程序占用的即可,注意后面在代码里要跟这里一致就好.
然后就打开了一个全新的Chrome窗口:
代码示例
def __init__(self, browser_name): # 限制用户传入驱动的全名:chromedriver
# 判断传入的浏览器名称,决定使用哪一种类的实例化
if browser_name == "chromedriver":
chromePath = self.base_driver + browser_name + ".exe" # 拼接驱动目录并赋值给一个变量
self.driver = webdriver.Chrome(executable_path=chromePath) # 完成对象的实例化
# elif 其他浏览器
elif browser_name == "existing": #表示打开现有的浏览器
options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9233")
path = Service(self.base_driver+'chromedriver.exe')
self.driver = webdriver.Chrome(service=path, options=options)
def setup(self):
driver = OpenBrowser.OpenBrowser("existing")
self.driver = driver
self.driver.open_url("https://y.qq.com/") #打开链接
self.driver.max_browser() #最大化
self.driver.implicitlywait(10) #隐式等待
尾言
在声明对象的实例化时,根据不同的入参,就可以选择是重新打开一个浏览器,还是用刚刚打开的浏览器! 实测! 非常好用!