Selenium安装与配置

文章目录

    • 一、selenium安装
      • 1. Python环境准备:
      • 2. 安装Selenium:
      • 3. 浏览器驱动安装:
      • 4. 验证安装:
    • 二、常见问题
      • 1. Selenium版本与浏览器驱动程序不兼容:
      • 2. 浏览器驱动程序路径未正确设置:

Selenium是一个用于Web应用程序测试的自动化工具。它直接运行在浏览器中,模拟真实用户的操作。Selenium支持多种主流浏览器,如IE、Mozilla Firefox、Safari、Google Chrome、Opera和Edge等。在爬取数据的时候对于需要登录后才能爬取的情况往往可以利用Selenium来进行模拟登录,登录后进行数据的获取。这里先介绍Selenium的安装与配置,实现通过python来驱动浏览器进行操作。

一、selenium安装

要安装Selenium,首先需要具备Python开发环境。以下是安装Selenium的步骤:

1. Python环境准备:

  • 打开Python官网:https://www.python.org/downloads/,下载适合你操作系统的Python版本。

  • 安装Python。在window下安装python环境非常简单,直接下一步下一步就可以安装完成。安装过程中,确保将Python添加到环境变量中,以便在命令行中运行Python命令。
    在这里插入图片描述

  • 安装完成后,可以在命令行中输入python --version来验证Python是否安装成功,并查看版本号。
    在这里插入图片描述

2. 安装Selenium:

  • 在命令行中,使用pip(Python的包管理工具)来安装Selenium。输入以下命令并按回车键执行:
  • 如果你的系统有多个Python版本,可能需要使用pip3代替pip。
pip install selenium

3. 浏览器驱动安装:

  • Selenium支持多种浏览器,但每种浏览器都需要相应的驱动程序。例如,对于Chrome浏览器,你需要下载ChromeDriver。
    ○ 访问ChromeDriver的下载页面:https://sites.google.com/a/chromium.org/chromedriver/,选择与你的Chrome浏览器版本相对应的ChromeDriver版本。
    ○ 国内镜像下载站点 https://registry.npmmirror.com/binary.html?path=chromedriver/
    高版本的ChromeDriver可以在https://chromedriver.com/download 下载
  • 下载后,解压(如果需要的话),并将ChromeDriver的路径添加到系统环境变量中,或者将其放在你的项目目录中。比如我的是放到 C:\python\Scripts 并将C:\python\Scripts配置到了系统环境变量中。
    在这里插入图片描述

4. 验证安装:

参考selenium的官方文档,创建一个简单的Python脚本,使用Selenium打开浏览器并访问一个网页。
运行这个脚本。如果一切顺利,它会打开Chrome浏览器并导航到指定的URL,然后关闭浏览器。
代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()driver.get("https://www.selenium.dev/selenium/web/web-form.html")title = driver.titledriver.implicitly_wait(0.5)text_box = driver.find_element(by=By.NAME, value="my-text")
submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")text_box.send_keys("Selenium")
submit_button.click()message = driver.find_element(by=By.ID, value="message")
text = message.textdriver.quit()

效果如下:
打开一个浏览器,访问https://www.selenium.dev/selenium/web/web-form.html
在这里插入图片描述

对浏览器中的元素进行操作,最后关闭浏览器。
在这里插入图片描述

请注意,由于Selenium和浏览器驱动程序可能会定期更新,因此在安装和配置过程中,最好参考最新的官方文档和指南。

二、常见问题

在安装Selenium的过程中,可能会遇到一些常见的问题

1. Selenium版本与浏览器驱动程序不兼容:

  • 问题:安装的Selenium版本与浏览器驱动程序版本不兼容。
  • 解决方案:检查Selenium和浏览器驱动程序的版本,确保它们相互兼容。通常,Selenium的最新版本会支持最新的浏览器驱动程序。如果需要,可以降级或升级Selenium或浏览器驱动程序以确保兼容性。

2. 浏览器驱动程序路径未正确设置:

  • 问题:浏览器驱动程序的路径未正确设置,导致Selenium无法找到驱动程序。
  • 解决方案:确保将浏览器驱动程序的路径添加到系统环境变量中,或者在Selenium代码中明确指定驱动程序的路径。例如,对于ChromeDriver,可以在代码中这样设置:
from selenium import webdriver  
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

后续我们将实战通过selenium来实现登录到淘宝并获取淘宝的商品信息。


作者博客:http://xiejava.ishareread.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/696844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年1月手机市场行业分析:苹果手机份额骤降,国产高端手机成功逆袭!

小米Ultra发布。 一方面,我们有望看到国产手机再一次超越自己的决心,继续创新追逐高端;另一方面,我们也不得不正视目前手机市场所面临的危机状态。 2024年1月的线上手机市场远不如去年。根据鲸参谋数据显示,今年1月京…

Qt(C++)面试题 | 精选25项常问

面试是每个求职者都必须经历的一关,而QT面试更是需要面试者有深厚的编程基础和丰富的实战经验。下面我们为大家整理了25道QT面试题,希望能够帮助大家在求职路上获得成功。 ​Qt 中常用的五大模块是哪些? Qt 中常用的五大模块包括: QtCore:提供了 Qt 的核心功能,例如基本的…

Java面试题之分布式/微服务篇

经济依旧不景气啊,如此大环境下Java还是这么卷,又是一年一次的金三银四。 兄弟们,你准备好了吗?冲冲冲!欧里给! 分布式/微服务相关面试题解 题一:CAP理论,BASE理论题二:…

深度神经网络

包括:深度前馈神经网络、深度卷积神经网络、深度循环神经网络 深度神经网络全面概述:从基本概念到实际模型和硬件基础-腾讯云开发者社区-腾讯云

MQL语言实现JSON协议库

文章目录 一、MQL语言实现JSON协议的意义二、定义JSON数据枚举类型简单数据类型复杂数据类型枚举数据类型定义类变量清理与赋值方法构造与析构方法重载运算符添加与设置方法序列化与反序列方法 一、MQL语言实现JSON协议的意义 数据交互:JSON是一种轻量级的数据交换格…

【2024软件测试面试必会技能】Postman(1): postman的介绍和安装

Postman的介绍 Postman 是一款谷歌开发的接口测试工具,使API的调试与测试更加便捷。 它提供功能强大的 Web API & HTTP 请求调试。它能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..),附带任何数量的参数 headers。 postman是一款支持http协议的接口调试…

【PTA|函数题|期末复习】指针

目录 6-1 计算两数的和与差(5分) 函数接口定义: 裁判测试程序样例: 输入样例: 输出样例: 代码 6-2 拆分实数的整数与小数部分 (5分) 函数接口定义: 裁判测试程序样例: 输入…

springboot整合mybatisPlus超级详细

springboot整合mybatis-plus超级详细 一、环境二、springboot整合myBatisPlus2.1新建2.2 添加Mybatis-plus和mysql依赖2.3 修改配置文件2.4 新建包和文件2.5 新建表2.6 创建实体类2.7 创建Mapper接口2.8 创建Service接口2.9 创建Service实现类2.10 增删改查 MyBatis-Plus&#…

C# Onnx 使用onnxruntime部署实时视频帧插值

目录 介绍 效果 模型信息 项目 代码 下载 C# Onnx 使用onnxruntime部署实时视频帧插值 介绍 github地址:https://github.com/google-research/frame-interpolation FILM: Frame Interpolation for Large Motion, In ECCV 2022. The official Tensorflow 2…

四.QT5工具安装和环境变量的配置

1.以管理员身份运行安装包 2.登录qt账号,点击【next】 3.选中同意 4.选择安装目录,注意不能有中文和空格 5.勾选 64位 mingw。点击【next】,等待安装完成 6.配置环境变量

[07] 组件注册

目录 Vue.js 组件局部注册全局注册 Vue.js 组件 组件(Component)是 Vue.js 最强大的功能之一。 组件可以扩展 HTML 元素,封装可重用的代码。 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都…

为什么很多人选用QT开发,有哪些应用实例?

在软件开发领域,Qt框架作为一种跨平台的C应用程序开发框架,近年来受到越来越多开发者的青睐。这主要得益于其卓越的跨平台性能、丰富的功能库、开发效率以及社区支持。以下将通过详实的分析,从不同角度探讨为什么很多人改用QT开发&#xff0c…

低代码开发:学校低成本数字化转型的新引擎

随着科技的飞速发展,数字化转型已经成为教育行业的一大趋势。然而,对于许多学校来说,高昂的数字化改造成本成为了一道难以逾越的门槛。本文将探讨如何通过低代码开发,以低成本实现学校数字化转型,为教育行业注入新活力…

力扣热题100_子串_560_和为 K 的子数组

文章目录 题目链接解题思路解题代码 题目链接 560.和为 K 的子数组 解题思路 1.定义变量count(计算个数,返回值)为0、n(当前nums长度)、preSums(利用利用defaultdict的特性,当presum-k不存在…

list.stream().forEach()和list.forEach()的区别

list.stream().forEach() 和 list.forEach() 在 Java 中都是用于遍历集合元素的方法,但它们在使用场景和功能上有所不同: list.forEach(): 是从 Java 8 开始引入到 java.util.List 接口的标准方法。直接对列表进行迭代,它采用内部…

力扣645. 错误的集合(排序,哈希表)

Problem: 645. 错误的集合 文章目录 题目描述思路复杂度Code 题目描述 思路 1.排序 1.对nums数组按从小到大的顺序排序; 2.遍历数组时若判断两个相邻的元素则找到重复元素; 3.记录一个整形变量prev一次置换当前位置元素并与其作差,若差等于2着说明缺失的…

Mysql索引操作

1、索引语法 2、慢查询日志 慢查询日志记录了所有执行时间超过指定参数( long_query_time ,单位:秒,默认 10 秒)的所有 SQL 语句的日志。 MySQL 的慢查询日志默认没有开启,我们可以查看一下系统变量 slo…

MySQL数据库备份与还原批处理脚本

数据库备份文件,例如保存为:dump_msyql.bat REM 数据库备份 echo offREM 激活延迟环境变量扩展,防止变量赋值丢失 setlocal enabledelayedexpansionREM 获取当天时间 set today%date:~8,2%REM 大前天,当天-3天,小于10…

包装类日期日历类

一(Date类): 在JDK的java.util包中,提供了Date类用于表示日期和时间,精确到毫秒。随着JDK版本的不断升级和发展,Date类中的大部分构造方法和普通方法都已经不推荐使用。在JDK8中,Date类只有2个构造方法可以使用&#x…

【LeetCode】升级打怪之路 Day 02:有序数组平方 滑动窗口法

今日题目: 977. 有序数组的平方 | LeetCode209. 长度最小的子数组 | LeetCode76. 最小覆盖子串 | LeetCode59. 螺旋矩阵 II | LeetCode 目录 今日总结Problem 1:有序数组平方 ⭐⭐⭐Problem 2:滑动窗口法 【必会】LeetCode 209. 长度最小的子…