Python+selenium定位已打开的浏览器

简介: Python+selenium定位已打开的浏览器

Python+selenium定位已打开的浏览器

在我们使用python+selenium+webdriver自动化使用谷歌账号登录浏览器的时候,会出现如下情况

image.png

点击了解详情,我们发现有这四点原因:

  • 不支持 JavaScript 或者已关闭 JavaScript
  • 添加了不安全或不受支持的扩展程序
  • 通过软件自动控制,而非人工控
  • 嵌入在其他应用中

image.png

原因分析:


通过百度等搜索出现该问题的原因,众说纷纭,我也根据相关的文章改了相应的地方


1.javaScript这个,更改之后,依旧无效


2.扩展插件,我谷歌浏览器新装的,无任何插件和扩展程序


3.我确实使用了自动化控制


4.没有嵌套,直接访问的谷歌进行登录


综上分析和相关实践得出结论,谷歌账户在登录时会去检测你当前的行为是否是自动化,若检测成功则阻止你登录,而且账户目前我发现是某几个账户就会阻止,有的账户不会阻止,这点很迷


进一步分析,谷歌是如何检测我是否为自动化,这里一顿胡乱操作发现,谷歌是通过webdrive协议监控到的。


那么,我该如何阻止它呢?中间过程不细说,试了非常多的方法,目前总结了两种。


1.使用selenium gird,结合selenium1.0版本,直接通过jar包启动连接浏览器,这方法的缺点就是,selenium1.0的功能无法满足我做项目的要求


2.我是否可以手动开启一个本地浏览器,自己登录账号,之后再通过selenium定位到我这个浏览器,再通过webdriver去实现自动化呢?我发现,这个确实可以,缺点:需要自己通过命令启动浏览器


方法一暂不介绍,十年前的技术


此处介绍方法二:


方法二借鉴了该作者的博客指点:


参考链接:https://blog.csdn.net/a1sd1/article/details/96110865


我们可以利用Chrome DevTools协议。它允许客户检查和调试Chrome浏览器。


打开cmd,在命令行中输入命令:(需要将你谷歌浏览器的安装目录配置到环境变量中)


image.png

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenium\AutomationProfile"

-remote-debugging-port值,可以指定任何打开的端口。


-user-data-dir标记,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。


C:\selenium\AutomationProfile 这个文件夹是我手动在C盘下创建的,你们也可以改为别的。


注意:不要忘了在环境变量中PATH里将chrome的路径添加进去。(其实也可以不配置,直接定位到chrome的安装路径找到chrome.exe文件 就可以使用)


此时会打开一个浏览器页面,我们输入谷歌登录网址,我们把它当成一个已存在的浏览器:


此时你去手动登录谷歌账号,便会发现之前自动化登录不了的,这时候可以登录了,而且登录之后,以后都不需要登录,它会把你这次登录的信息记入到C:\selenium\AutomationProfile 下


后面你只需要python+selenium+webdriver定位到这个已经登录的浏览器进行操作就可以啦。


现在,我们需要接管上面的浏览器。新建一个python文件,运行以下代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_driver = "./chromedriver.exe" #我是把chromedriver驱动放在项目根目录下
driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
#driver.get(url) #这一句不需要加

image.png

这是登录后的标识,之后该浏览器就可以正常去执行你的自动化脚本啦。

相关文章
|
28天前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
93 5
|
7天前
|
数据采集 Web App开发 前端开发
Python爬虫进阶:Selenium在动态网页抓取中的实战
【10月更文挑战第26天】动态网页抓取是网络爬虫的难点,因为数据通常通过JavaScript异步加载。Selenium通过模拟浏览器行为,可以加载和执行JavaScript,从而获取动态网页的完整内容。本文通过实战案例,介绍如何使用Selenium在Python中抓取动态网页。首先安装Selenium库和浏览器驱动,然后通过示例代码展示如何抓取英国国家美术馆的图片信息。
26 6
|
4天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
13天前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
|
23天前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
|
26天前
|
数据采集 Web App开发 数据可视化
Python爬虫教程:Selenium可视化爬虫的快速入门
Python爬虫教程:Selenium可视化爬虫的快速入门
|
28天前
|
Web App开发 前端开发 测试技术
Selenium 4新特性解析:关联定位器及其他创新功能
【10月更文挑战第6天】Selenium 是一个强大的自动化测试工具,广泛用于Web应用程序的测试。随着Selenium 4的发布,它引入了许多新特性和改进,使得编写和维护自动化脚本变得更加容易。本文将深入探讨Selenium 4的一些关键新特性,特别是关联定位器(Relative Locators),以及其他一些重要的创新功能。
111 2
|
30天前
|
Web App开发 XML JavaScript
Python 操作浏览器:让 Python 和 Web 世界合二为一
Python 操作浏览器:让 Python 和 Web 世界合二为一
|
30天前
|
Web App开发 缓存 Linux
高效Selenium测试技巧:轻松控制已开启的浏览器
【10月更文挑战第13天】在进行Selenium测试时,通常会启动新浏览器实例,但有时需要控制已开启的浏览器,以节省时间并更真实地模拟用户行为。这可通过设置Chrome为可远程控制并使用`Remote WebDriver`连接实现。需在启动Chrome时添加`--remote-debugging-port`参数,并通过Python脚本中的`webdriver.Remote`连接至指定端口。此外,还可利用会话ID(Session ID)重新连接浏览器,提高测试灵活性。需要注意浏览器版本兼容性及元素定位稳定性等问题,确保测试准确性和一致性。
206 1
|
1月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。