Selenium系列教程 - 番外篇 控制浏览器的两种方式

2023-11-15

一、让代码打开浏览器

这种就是我们平时常用的方式,如下:

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

二、先打开浏览器,然后再让代码进行接管

1、原理

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

2、打开浏览器

打开cmd,在命令行中输入命令:

C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\test_selenium"

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

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

此时会打开一个浏览器页面,输入百度网址,我们把它当成一个已存在的浏览器。

需要注意的是:

   1. 谷歌浏览器版本和chromedriver驱动的版本是否一致;(从命令行输入chromedriver可以查看版本)
   2. chromedriver驱动是否添加到环境变量。

3、接管浏览器

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

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

options = Options()
options.add_experimental_option('debuggerAddress', '127.0.0.1:9222')
driver = webdriver.Chrome(options=options)
print(driver.title)

会发现打印出了 “百度一下,你就知道” 的网页标题。这样我们就实现了对一个已打开的浏览器的控制。

更多需求可以自己在此基础上进行修改。

在这里插入图片描述


在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium系列教程 - 番外篇 控制浏览器的两种方式 的相关文章

  • 通过 add_subplot 添加子图后如何共享轴?

    我有一个像这样的数据框 df pd DataFrame A 0 3 0 2 0 5 0 2 B 0 1 0 0 0 3 0 1 C 0 2 0 5 0 0 0 7 D 0 6 0 3 0 4 0 6 index list abcd A B
  • 动态向类添加类方法

    我有以下片段 FEED TYPES fan mail Fan Mail review Review tip Tip fan user Fan User fan song Fan Song fan album Fan Album played
  • 如何(重新)命名 pandas 数据框中的空列标题而不导出到 csv

    我有一个熊猫数据框df1带有一个索引列和一系列未命名的值 我想为未命名的系列指定一个名称 到目前为止 我知道的唯一方法是导出到df1 csv using df1 to csv df1 csv header Signal 然后使用以下命令重新
  • 如果 Excel 文件是由程序创建的,Pandas read_excel 对于具有简单公式的单元格返回 nan [重复]

    这个问题在这里已经有答案了 I use pd read excel读取由以下命令创建的 excel 文件openpyxl并从一个网址下载 解析后的数据框将给出nan如果单元格值是公式 which formula is simply 100
  • str.translate 与 str.replace - 何时使用哪一个?

    何时以及为什么使用前者而不是后者 反之亦然 目前尚不完全清楚为什么有些人使用前者以及为什么有些人使用后者 它们有不同的目的 translate只能用任意字符串替换单个字符 但一次调用可以执行多次替换 它的参数是一个特殊的表 它将单个字符映射
  • Flask 中“缺少 CSRF 令牌”,但它在模板中呈现

    问题 当我尝试登录 使用 Flask login 时 我得到Bad Request The CSRF session token is missing但令牌正在呈现 在模板中 secret key 已设置 并且我在本地运行localhost
  • Keras model.predict 函数给出输入形状错误

    我已经在 Tensorflow 中实现了通用句子编码器 现在我正在尝试预测句子的类概率 我也将字符串转换为数组 Code if model model type universal classifier basic class probs
  • 将 Python Pandas DataFrame 写入 Word 文档

    我正在努力创建一个使用 Pandas DataFrames 的 Python 生成的报告 目前我正在使用DataFrame to string 方法 但是 这会作为字符串写入文件 有没有办法让我实现这一目标 同时将其保留为表格 以便我可以使
  • 如何在Windows中的Python 3.9下pip安装pickle?

    我需要pickle https docs python org 3 9 library pickle html module pickle包安装在我的下面Python 3 9在 Windows 10 下 我尝试过的 当尝试与pip inst
  • 无法在 virtualenv 中安装 libxml2

    我有一个问题libxml2蟒蛇模块 我正在尝试将其安装在python3 虚拟环境使用以下命令 pip install libxml2 python3 但它显示以下错误 Collecting libxml2 python3 Using cac
  • 使用pathlib获取主目录

    翻看新的pathlib在 Python 3 4 中 我注意到没有任何简单的方法来获取用户的主目录 我能想到的获取用户主目录的唯一方法是使用旧的os path像这样的库 import pathlib from os import path p
  • 正在使用 PIL 保存损坏的图像

    我遇到一个问题 操作图像像素导致保存损坏的图像 因此 我使用 PIL 打开图像 然后将其转换为 NumPy 数组 image Image open myimage png np image np asarray image 然后 我转置图像
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • 如何在matplotlib中调整x轴

    I have a graph like this x轴上的数据表示小时 所以我希望x轴设置为0 24 48 72 而不是现在的值 很难看到 0 100 之间的数据 fig1 plt figure ax fig1 add subplot 11
  • 无法导入QUERY_TERMS

    我正在运行一个网站Python and Django Django filters 2 1 installed Django 2 1 installed 当我运行时 我收到以下错误 importError Could not import
  • 从 wxPython 事件处理程序中调用函数

    我正在努力寻找一种在 wxPython 事件处理函数中使用函数的方法 假设我有一个按钮 单击该按钮时 它会使用事件处理程序运行一个名为 OnRun 的函数 但是 用户忘记单击 OnRun 按钮之前的 RadionButton 我想弹出一个
  • 如何创建用于霍夫曼编码和解码的树?

    对于我的作业 我将对霍夫曼树进行编码和解码 我在创建树时遇到问题 并且陷入困境 不要介意打印语句 它们只是让我测试并查看函数运行时的输出是什么 对于第一个 for 循环 我从主块中用于测试的文本文件中获取了所有值和索引 在第二个 for 循
  • 是否可以使用 Anaconda 包作为 Google Cloud Functions 的依赖项?

    我正在使用 Python 运行时编写 Google Cloud Function 我需要包含一些无法使用的依赖项pip 如文档中所述here https cloud google com functions docs writing spe
  • 如何使用 enumerate 来倒数?

    letters a b c 假设这是我的清单 在哪里for i letter in enumerate letters 将会 0 a 1 b 2 c 我怎样才能让它向后枚举 如 2 a 1 b 0 c 这是一个很好的解决方案并且工作完美 i
  • Biopython 可以执行 Seq.find() 来解释歧义代码吗

    我希望能够在 Seq 对象中搜索考虑歧义代码的子序列 Seq 对象 例如 以下内容应该是正确的 from Bio Seq import Seq from Bio Alphabet IUPAC import IUPACAmbiguousDNA

随机推荐

  • Vue3注册全局指令

    在src目录下新建directives permission js文件 export default name action mounted el binding vnode console log vnode ctx vonde debu
  • 当我们在讨论设备像素比(device pixel ratio,dpr)的时候我们在讨论什么?

    目录 0 为什么要写这篇文章 1 设备像素比的问题在哪里 1 1 不同的论述导致不同的理解 1 2 设备独立像素与CSS像素 1 3 小结 2 设备像素比 设备物理像素 CSS像素 真的正确吗 2 1 PC端验证 2 2 手机端验证 2 3
  • Uniapp使用腾讯地图并进行标点创建和设置保姆教程

    使用Uniapp内置地图 首先我们需要创建一个uniapp项目 首先我们需要创建一个uniapp项目 我们在HBuilder左上角点击文件新建创建一个项目 然后下面这张图的话就是uniapp创建项目过程当中需要注意的一些点和具体的操作 然后
  • VBA SPLIT函数详解

    VBA编程是经常会用到字符串拆分函数SPLIT 用法也不复杂 但是大家对于这个函数的参数未必完全了解 下面结合示例讲解一下参数的用法 SPLIT函数的语法格式如下 Split expression delimiter limit compa
  • QCC512x/302x笔记(0)-- 调试笔记索引

    博文索引 QCC512x 302x笔记 1 qcc5124芯片开发入门 QCC512x 302x笔记 2 usb驱动安装和烧录指引 QCC512x 302x笔记 3 只改一行代码 实现串口输出调试log 作者有话说 哈喽大家好 我是书哥Su
  • Java-Map常用子类

    今天讲解Map常用的子类 HashMap LinkedHashMap以及TreeMap 文章目录 一 HashMap 1 介绍 2 注意 二 LinkedHashMap 三 TreeMap 1 介绍 2 代码演示 一 HashMap 1 介
  • NEO-M8N模块设置参数输出

    NEO M8N模块设置参数输出 需求 1 软件要求 NEOM8N要求软件吧按本是u center8 20 这之下的版本可能会设置不成功 2 设置GPS输出格式 近期有个需求 解析GPS输出 我只需要经纬度信息 输出信息一般都比较多 所以需要
  • 函数包装修饰:装饰器,迭代器,生成器【Python-5】

    file author jUicE g2R qq 3406291309 彬 bin 必应 一个某双流一大学通信与信息专业大一在读的技术彩笔 brief python小白入门笔记 copyright 2022 8 COPYRIGHT 原创技术
  • SVN服务器添加账号

    1 进入svn安装目录的conf目录 编辑passwd文件 添加用户名密码 格式 user password Esc gt wq 保存退出即可 2 编辑授权文件authz 记得添加如下两行 groups 3 svnserve conf 配置
  • Macbook同时访问内外网

    大公司里一般都会搭建内网环境 为了网络安全 内外网隔离 在内网环境中如果想访问外网 需要走公司的代理 一般情况下公司代理都会屏蔽一些地址 因此我们不得不频繁的在内外网之间进行切换 这降低了工作效率不说 也降低了我们的工作热情 有没有办法破解
  • 华科网安操作系统原理复习笔记

    华科网安操作系统原理复习笔记 操作系统概述 操作系统的定义和特性 操作系统的功能 操作系统的性能 操作系统的发展历史 操作系统的逻辑结构 操作系统的硬件基础 计算机三总线硬件结构 CPU结构 处理机的态 内存 中断 基本输入输出系统 操作系
  • CSS实现三角形的方法之一--利用 border 属性实现三角形

    这个原理很简单 我我们先看下面的图 这是一个边框为 20px 的 div 看他的边框 是个梯形 变化会从这里开始 CSS triangle width 30px height 30px border width 20px border st
  • 学习日记Day12:OSPF概述

    文章目录 一 链路状态路由协议 1 LSA泛洪 2 LSDB的组建 3 SPF计算 4 路由表的生成 二 OSPF的基础术语 1 区域 Area 2 Router ID 3 度量值 cost 一 链路状态路由协议 1 LSA泛洪 众所周知O
  • 【Python】Python基础知识总结

    欢迎来到Python专栏 Python基础知识总结 o o 嗨 我是小夏与酒 博客主页 小夏与酒的博客 该系列文章专栏 Python学习专栏 文章作者技术和水平有限 如果文中出现错误 希望大家能指正 欢迎大家关注 目录 Python基础知识
  • 怎么修改嵌入式设备里只读目录下的文件

    前言 在一个定制项目中 要集成一个人脸识别的算法 算法是客户的 硬件平台是自己公司的 我按照客户给的SDK开发包 将他们的算法集成到我们的设备里后 程序在调用客户给的算法接口时挂掉 而且是在算法接口里挂掉的 在和客户那边的研发人员沟通确认后
  • 统计学笔记(四)概率与概率分布

    文章目录 1 随机事件及其概率 1 1 随机事件的几个基本概念 1 2 事件的概率 2 离散型随机变量及其分布 2 1 基本概念 2 2 分布 2 2 1 二项分布 2 2 2 泊松分布 3 连续型随机变量的概率分布 3 1 基本概念 3
  • 傻瓜攻略(五)——MATLAB实现神经网络的函数逼近和非线性回归

    本文的主要内容来自Mathworks官网的相关示例 body fat estimation 此示例说明神经网络如何基于多个身体测量值来估计体脂率 实现函数逼近和非线性回归 问题 估计体脂率 在此示例中 尝试构建一个神经网络 该网络可以通过下
  • 领域kshell

    import networkx as nx import numpy as np import pandas as pd def get neigbors g node depth 1 output layers dict nx bfs s
  • Ubuntu18.04安装Postgresql与配置

    安装Postgresql sudo apt get update sudo apt get upgrade sudo apt get install postgresql 查看客户端版本 psql version 在Ubuntu中安装Pos
  • Selenium系列教程 - 番外篇 控制浏览器的两种方式

    目录 一 让代码打开浏览器 二 先打开浏览器 然后再让代码进行接管 1 原理 2 打开浏览器 3 接管浏览器 一 让代码打开浏览器 这种就是我们平时常用的方式 如下 driver webdriver Chrome driver get ht