练习用Jupyter使用selenium【疑问未解决版】

news/2025/4/1 6:54:25/

目录

  • 1、打开Jupyter后,检查是否安装了selenium
  • 2、根据提示重启内核
  • 3、【疑问1】我重启了内核之后还是提示这句话
  • 4、执行简单的打开网页的代码【结果又报错-疑问2】
  • 5、选择元素的基本方法
    • (1)根据id找到元素,进行输入文本并回车的操作
    • (2)根据class定位元素,获取显示在界面上的text(文本)内容
    • (3)根据标签(tag)名定位元素

selenium_1">1、打开Jupyter后,检查是否安装了selenium

命令:

pip show selenium

结果:
在这里插入图片描述
【在 Jupyter Notebook 中,当你安装或更新了某些 Python 包后,系统会提示你重启内核,这样新的包或更新后的包才能被正确加载并使用。】

2、根据提示重启内核

在这里插入图片描述

3、【疑问1】我重启了内核之后还是提示这句话

提示:Note: you may need to restart the kernel to use updated packages.
我:fine~~,你提示就提示吧,我能拿你怎么办呢!!!

4、执行简单的打开网页的代码【结果又报错-疑问2】

from selenium import webdriver
# from selenium.webdriver.edge.service import Service
# 创建一个WebDriver类型的实例对象,运行浏览器驱动,之后控制浏览器
# wd = webdriver.Edge(service = Service(r'D:\edgedriver_win64\msedgedriver.exe'))
wd = webdriver.Edge()
# 在浏览器中打开某网址页面
wd.get('https://www.baidu.com')

结果:edge浏览器成功打开了百度的网页,但是jupyter提示:

DevTools listening on ws://127.0.0.1:31061/devtools/browser/970d1937-368e-423a-bae8-af59c93a6da0
[6804:19916:0320/162225.845:ERROR:edge_qqbrowser_importer_utils_win.cc(158)] QQBrowser user data path not found.
[20628:17792:0320/162226.091:ERROR:ssl_client_socket_impl.cc(891)] handshake failed; returned -1, SSL error code 1, net_error -101
[20628:17792:0320/162226.150:ERROR:ssl_client_socket_impl.cc(891)] handshake failed; returned -1, SSL error code 1, net_error -101
[0x7FF8A495B840] ANOMALY: meaningless REX prefix used
[0x7FF8A4B5C590] ANOMALY: meaningless REX prefix used
[0x7FF8A4B5E810] ANOMALY: meaningless REX prefix used
[0x7FF8A495B840] ANOMALY: meaningless REX prefix used
[0x7FF8A4B5C590] ANOMALY: meaningless REX prefix used
[0x7FF8A4962E30] ANOMALY: meaningless REX prefix used
[0x7FF8A4B5E810] ANOMALY: meaningless REX prefix used
[0x7FF8A4962E30] ANOMALY: meaningless REX prefix used

【查了一圈也不是很懂为什么会这样,明明我的浏览器版本和驱动器版本已经一样了,show time~】
在这里插入图片描述
Edge浏览器驱动器下载地址:驱动器下载地址
在这里插入图片描述

5、选择元素的基本方法

(1)根据id找到元素,进行输入文本并回车的操作

from selenium import webdriver
from selenium.webdriver.common.by import By
# from selenium.webdriver.edge.service import Service
# wd = webdriver.Edge(service = Service(r'D:\edgedriver_win64\msedgedriver.exe'))# 创建一个WebDriver类型的实例对象,运行浏览器驱动,之后控制浏览器
wd = webdriver.Edge()
# 在浏览器中打开某网址页面
wd.get('https://www.baidu.com')# 创建一个WebElement对象,定位web的某一元素,之后对这个元素进行操作
element = wd.find_element(By.ID,'kw')
# 输入文字并回车
element.send_keys('汪苏泷\n')

或者是:

from selenium import webdriver
from selenium.webdriver.common.by import By
# from selenium.webdriver.edge.service import Service
# wd = webdriver.Edge(service = Service(r'D:\edgedriver_win64\msedgedriver.exe'))# 创建一个WebDriver类型的实例对象,运行浏览器驱动,之后控制浏览器
wd = webdriver.Edge()
# 在浏览器中打开某网址页面
wd.get('https://www.baidu.com')# 创建一个WebElement对象,定位web的某一元素,之后对这个元素进行操作
element = wd.find_element(By.ID,'kw')
# 输入文字
element.send_keys('汪苏泷')
# 百度一下
element = wd.find_element(By.ID,'su')
element.click()

在这里插入图片描述
写在最后:
web自动化测试(使用selenium时),最重要也是最难的就是定位元素,定位到元素之后,就可以进行“获取元素的数据”、“输入数据”、“点击”等操作了。

(2)根据class定位元素,获取显示在界面上的text(文本)内容

from selenium import webdriver
from selenium.webdriver.common

http://www.ppmy.cn/news/1582786.html

相关文章

【Node.js入门笔记11---模块化】

Node.js入门笔记11 Node.js---模块化一、Node.js模块化学习指南1. CommonJS模块使用2. ES6模块使用3. 混合使用CommonJS与ES6模块4. 核心模块与第三方模块5. 模块解析机制 Node.js—模块化 什么是模块化? 将代码拆分为独立的功能块,每个模块负责特定功能…

探秘鸿蒙 HarmonyOS NEXT:鸿蒙存储核心技术全解析

引言 本文章基于HarmonyOS NEXT操作系统,API12以上的版本。 在 ArkTS (ArkUI 框架) 中,用户首选项 (Preferences) 和 持久化存储 (PersistentStorage) 都用于数据存储,但它们有不同的应用场景和特点。 1. 用户首选项 (Preferences) 概念&a…

智能井盖:守护城市安全的“智慧卫士”

在城市的地下管网系统中,井盖是连接地下与地面的重要节点,其安全与否直接关系到城市居民的生命财产安全。传统井盖由于缺乏智能化管理手段,常常出现被盗、损坏、丢失等问题,给城市带来诸多安全隐患。而智能井盖的出现,…

连续型随机变量及其分布

连续型随机变量 数学公式可以看作一门精确描述事物的语言,比语言尤其是汉语的模糊性精确多了!离散型数据的处理可以通过枚举和相加进行处理。而连续型数据则没有办法这样处理。我们必须要通过函数和取值区间还有微积分计算。 [定义1&#x…

Linux——线程

Linux——线程 目录 一、线程 1.1 创建一个线程 1.2 主函数等待线程结束pthread_join 为什么输出是乱序的 一、线程 线程:进程内部的一条执行路径 进程:一个正在运行的程序 进程相当于工厂车间,线程就是车间里的许多工人 1.1 创建一个…

一些SQL优化经验(非添加索引版)

SQL 优化核心策略 伪代码示例,现实比这个复杂 1. 子查询优化 (1) 避免低效的 IN 和 NOT IN 问题: NOT IN 可能导致全表扫描,尤其是子查询结果集较大时。 优化方案: 替换为 LEFT JOIN: -- 原查询(低效&am…

基于C语言实现的观察者模式 以温度监控系统为例

场景为 温度监控系统:当温度传感器检测到温度变化时,自动通知所有注册的显示器(如LCD、手机App)更新显示。 场景描述 主题(Subject):温度传感器,负责检测温度变化并通知观察者。 观察者(Observer):显示器(LCD显示器、手机App),订阅温度数据并在温度变化时更新显…

深入解析MySQL数据库分库分表技术

友情提示:本文内容由银河易创(https://ai.eaigx.com)AI创作平台gpt-4-turbo模型生成,仅供参考。 随着互联网应用的快速发展,单一数据库在面对大规模数据时可能会遇到性能瓶颈。因此,数据库分库分表作为一种…