我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么安装Python中Selenium框架

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么安装Python中Selenium框架

本篇内容主要讲解“怎么安装Python中Selenium框架”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么安装Python中Selenium框架”吧!

  Selenium 是一个用于测试 Web 应用程序的框架,该框架测试直接在浏览器中运行,就像真实用户操作一样。它支持多种平台:Windows、Linux、Mac,支持多种语言:Python、Perl、PHP、C# 等,支持多种浏览器:Chrome、IE、Firefox、Safari 等。

  1 安装

  1)安装 Selenium

  pip install selenium

  2)安装 WebDriver

  主要浏览器 WebDriver 地址如下:

  Chrome:http://chromedriver.storage.googleapis.com/index.html

  Firefox:https://github.com/mozilla/geckodriver/releases/

  IE:http://selenium-release.storage.googleapis.com/index.html

  本文以 Chrome 为例,本机为 Windows 系统,WebDriver 使用版本 78.0.3904.11,Chrome 浏览器版本为 78.0.3880.4 驱动程序下载好后解压,将 chromedriver.exe 放到 Python 安装目录下即可。

  2 操作浏览器

  2.1 打开浏览器

  1)普通方式

  以打开去 163 邮箱为例,使用 Chrome 浏览器

  from selenium import webdriver

  browser = webdriver.Chrome()

  browser.get('https://mail.163.com/')

  使用 Firefox 浏览器

  from selenium import webdriver

  browser = webdriver.Firefox()

  browser.get('https://mail.163.com/')

  使用 IE 浏览器

  from selenium import webdriver

  browser = webdriver.Ie()

  browser.get('https://mail.163.com/')

  2)加载配置方式

  以 Chrome 为例,在 Chrome 浏览器地址栏输入 chrome://version/ 打开,如图所示:

  我们可以看到个人资料路径这一项,取到路径:C:\Users\admin\AppData\Local\Google\Chrome\User Data,取到 User Data 使用自己设置的配置,取到 Default 使用默认配置。看下示例:

  from selenium import webdriver

  option = webdriver.ChromeOptions()

  # 自己的数据目录(需要将复制的路径中的 \ 替换成 / 或进行转义 \\)

  # option.add_argument('--user-data-dir=C:/Users/admin/AppData/Local/Google/Chrome/User Data')

  option.add_argument('--user-data-dir=C:\\Users\\admin\\AppData\\Local\\Google\\Chrome\\User Data')

  browser = webdriver.Chrome(chrome_options=option)

  browser.get('https://mail.163.com/')

  # 关闭

  browser.quit()

  如果执行时报错没有打开指定页面,可先将浏览器关闭再执行。

  3)Headless 方式

  前两种方式都是有浏览器界面的方式,Headless 模式是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行我们的程序。这种方式更加方便测试 Web 应用、获得网站的截图、做爬虫抓取信息等。看下示例:

  from selenium import webdriver

  chrome_options = webdriver.ChromeOptions()

  # 使用 headless 无界面浏览器模式

  chrome_options.add_argument('--headless')

  # 禁用 gpu 加速

  chrome_options.add_argument('--disable-gpu')

  # 启动浏览器,获取网页源代码

  browser = webdriver.Chrome(chrome_options=chrome_options)

  url = 'https://mail.163.com/'

  browser.get(url)

  print('browser text = ',browser.page_source)

  browser.quit()

  2.2 设置浏览器窗口

  最大化显示

  browser.maximize_window()

  最小化显示

  browser.minimize_window()

  自定义大小

  # 宽 500,高 800

  browser.set_window_size(500,800)

  2.3 前进后退

  前进

  browser.forward()

  后退

  browser.back()

  3 元素定位

  当我们想要操作一个元素时,首先需要找到它,Selenium 提供了多种元素定位方式,我们以 Chrome 浏览器 Headless 方式为例。看下示例:

  from selenium import webdriver

  chrome_options = webdriver.ChromeOptions()

  chrome_options.add_argument('--headless')

  chrome_options.add_argument('--disable-gpu')

  browser = webdriver.Chrome(chrome_options=chrome_options)

  url = 'https://xxx.xxx.com/'

  browser.get(url)

  data = browser.page_source

  假设访问地址 https://xxx.xxx.com/,返回 data 为如下内容。

  index

  1)根据 id 定位

  browser.find_element_by_id('fid')

  2)根据 name 定位

  # 返回第一个元素

  browser.find_element_by_name('fname')

  # 返回所有元素

  browser.find_elements_by_name('fname')

  3)根据 class 定位

  # 返回第一个元素

  browser.find_element_by_class_name('fname')

  # 返回所有元素

  browser.find_elements_by_class_name('fname')

  4)根据标签名定位

  # 返回第一个元素

  browser.find_element_by_tag_name('input')

  # 返回所有元素

  browser.find_elements_by_tag_name('input')

  5)使用 CSS 定位

  # 返回第一个元素

  browser.find_element_by_css_selector('.fname')

  # 返回所有元素

  browser.find_elements_by_css_selector('.fname')

  6)使用链接文本定位超链接

  # 返回第一个元素

  browser.find_element_by_link_text('index')

  # 返回所有元素

  browser.find_elements_by_link_text('index')

  # 返回第一个元素

  browser.find_element_by_partial_link_text('index')

  # 返回所有元素

  browser.find_elements_by_partial_link_text('index')

  7)使用 xpath 定位

  # 返回第一个元素

  browser.find_elements_by_xpath("//input[@id='fid']")

  # 返回所有元素

  browser.find_elements_by_xpath("//input[@name='fname']")

  4 等待事件

  Web 应用大多都使用 AJAX 技术进行加载,浏览器载入一个页面时,页面内的元素可能会在不同的时间载入,这会加大定位元素的困难程度,因为元素不在 DOM 里,会抛出 ElementNotVisibleException 异常,使用 Waits,我们就可以解决这个问题。无锡做人流多少钱 http://mobile.ytsg029.com/

  Selenium WebDriver 提供了显式和隐式两种 Waits 方式,显式的 Waits 会让 WebDriver 在更深一步的执行前等待一个确定的条件触发,隐式的 Waits 则会让 WebDriver 试图定位元素的时候对 DOM 进行指定次数的轮询。

  4.1 显示等待

  WebDriverWait 配合该类的 until() 和 until_not() 方法,就能够根据判断条件而进行灵活地等待了。它主要流程是:程序每隔 x 秒检查一下,如果条件成立了,则执行下一步操作,否则继续等待,直到超过设置的最长时间,然后抛出 TimeoutException 异常。先看一下方法:

  __init__(driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None)

  driver: 传入 WebDriver 实例;

  timeout: 超时时间,单位为秒;

  poll_frequency: 调用 until 或 until_not 中方法的间隔时间,默认是 0.5 秒;

  ignored_exceptions: 忽略的异常,如果在调用 until 或 until_not 的过程中抛出这个元组中的异常,则不中断代码,继续等待,如果抛出的是这个元组外的异常,则中断代码,抛出异常。默认只有 NoSuchElementException。

  until(method, message='')

  method: 在等待期间,每隔一段时间(init 中的 poll_frequency)调用这个方法,直到返回值不是 False;

  message: 如果超时,抛出 TimeoutException,将 message 传入异常。

  until_not(method, message='')

  until 方法是当某条件成立则继续执行,until_not 方法与之相反,它是当某条件不成立则继续执行,参数与 until 方法相同。

  以去 163 邮箱为例,看一下示例:

  from selenium import webdriver

  from selenium.webdriver.common.by import By

  from selenium.webdriver.support.ui import WebDriverWait

  from selenium.webdriver.support import expected_conditions as EC

  browser = webdriver.Chrome()

  browser.get('https://mail.163.com/')

  try:

  # 超时时间为 5 秒

  data = WebDriverWait(browser,5).until(

  EC.presence_of_element_located((By.ID,'lbNormal'))

  )

  print(data)

  finally:

  browser.quit()

  示例中代码会等待 5 秒,如果 5 秒内找到元素则立即返回,否则会抛出 TimeoutException 异常,WebDriverWait 默认每 0.5 秒调用一下 ExpectedCondition 直到它返回成功为止。

  4.2 隐式等待

  当我们要找一个或者一些不能立即可用的元素的时候,隐式 Waits 会告诉 WebDriver 轮询 DOM 指定的次数,默认设置是 0 次,一旦设定,WebDriver 对象实例的整个生命周期的隐式调用也就设定好了。看一下方法:

  implicitly_wait(time_to_wait)

  隐式等待是设置了一个最长等待时间 time_to_wait,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步。看到了这里,我们会感觉有点像 time.sleep(),它们的区别是:time.sleep() 必须等待指定时间后才能继续执行, time_to_wait 是在指定的时间范围加载完成即执行,time_to_wait 比 time.sleep() 更灵活一些。

  看下示例:

  from selenium import webdriver

  browser = webdriver.Chrome()

  browser.implicitly_wait(5)

  browser.get('https://mail.163.com/')

  data = browser.find_element_by_id('lbNormal')

  print(data)

  browser.quit()

  5 登录 163 邮箱

  最后,我们用 Selenium 来做个登录 163 邮箱的实战例子。

  5.1 方式一

  我们通过地址 https://email2.163.com/ 登录,如图所示:

  从图中我们发现直接进了 163 邮箱用户名、密码登录页,我们直接输入用户名、密码,点击登录按钮即可。示例如下:

  from selenium import webdriver

  browser = webdriver.Chrome()

  browser.get('https://email2.163.com/')

  browser.switch_to.frame(browser.find_element_by_xpath('//iframe[starts-with(@id,"x-URS")]'))

  browser.implicitly_wait(2)

  # 自己的用户名

  browser.find_element_by_xpath('//input[@name="email"]').send_keys('xxx')

  # 自己的密码

  browser.find_element_by_xpath('//input[@name="password"]').send_keys('xxx')

  browser.find_element_by_xpath('//*[@id="dologin"]').click()

  browser.implicitly_wait(2)

  print(browser.page_source)

  browser.implicitly_wait(2)

  # 关闭

  browser.quit()

到此,相信大家对“怎么安装Python中Selenium框架”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么安装Python中Selenium框架

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么安装Python中Selenium框架

本篇内容主要讲解“怎么安装Python中Selenium框架”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么安装Python中Selenium框架”吧!  Selenium 是一个用于测试 W
2023-06-02

Python中Selenium怎么安装

在Python中安装Selenium,可以通过以下步骤进行:1. 确保已经安装了Python。可以在命令行中输入`python --version`来确认Python是否已经安装。2. 打开命令行或终端窗口,输入以下命令来安装Seleniu
2023-08-18

python中SQLAlchemy框架怎么安装

安装SQLAlchemySQLAlchemy是一款PythonORM,可简化数据库交互。安装步骤:安装Python。使用pip安装SQLAlchemy:pipinstallsqlalchemy。验证安装:pipshowsqlalchemy。Windows/macOS/Linux详细步骤使用命令提示符/终端执行:pipinstallsqlalchemypipenv安装在虚拟环境中:pipenvinstallsqlalchemy
python中SQLAlchemy框架怎么安装
2024-04-10

python中SQLAlchemy框架怎么安装

要安装SQLAlchemy框架,可以按照以下步骤进行:确保你已经安装了Python。你可以从Python官方网站下载并安装最新版本的Python。打开命令行界面(Windows上可以使用命令提示符或Powershell,Mac和Linux
python中SQLAlchemy框架怎么安装
2024-04-09

Selenium怎么在Python中安装

Selenium怎么在Python中安装?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3
2023-06-14

Python的Web框架Django怎么安装

本篇内容主要讲解“Python的Web框架Django怎么安装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的Web框架Django怎么安装”吧!简介Python下有许多款不同的 W
2023-07-02

python脚本框架webpy怎么安装

本篇内容介绍了“python脚本框架webpy怎么安装”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:安装pip install web.
2023-06-25

怎么在php中安装Phaicon框架

本篇文章为大家展示了怎么在php中安装Phaicon框架,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。php的框架有哪些php的框架:1、Laravel,Laravel是一款免费并且开源的PHP应用
2023-06-14

怎么在java中安装Hibernate框架

本篇文章为大家展示了怎么在java中安装Hibernate框架,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实
2023-06-14

怎么安装golang revel框架

这篇文章主要介绍“怎么安装golang revel框架”,在日常操作中,相信很多人在怎么安装golang revel框架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么安装golang revel框架”的疑
2023-07-05

如何在Python中安装selenium

如何在Python中安装selenium?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pyt
2023-06-14

Python Flask框架模块怎么安装及使用

这篇文章主要介绍“Python Flask框架模块怎么安装及使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python Flask框架模块怎么安装及使用”文章能帮助大家解决问题。一、概述Pyth
2023-07-05

php中安装Quercus框架

这篇文章将为大家详细讲解有关php中安装Quercus框架,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流
2023-06-14

php之kohana框架怎么安装

这篇文章给大家分享的是有关php之kohana框架怎么安装的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、
2023-06-14

怎么在Centos中安装nodejs和express框架

本篇文章给大家分享的是有关怎么在Centos中安装nodejs和express框架,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一. 下载nodejs 版本wget http:
2023-06-10

linux中selenium怎么安装及使用

在Linux系统中安装和使用Selenium,可以按照以下步骤进行操作:安装Python:通常,Selenium是通过Python来使用的,因此首先需要安装Python。可以使用以下命令来安装Python:sudo apt-get upda
linux中selenium怎么安装及使用
2024-03-13

Python + selenium 自动化测试框架是怎样的

今天就跟大家聊聊有关Python + selenium 自动化测试框架是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。自动化测试框架项目自动化测试框架设计为4层1.基础层(通用
2023-06-22

react框架怎么安装和使用

要安装和使用React框架,你需要按照以下步骤进行操作:安装Node.js:React需要Node.js来运行和构建应用程序。你可以从Node.js官方网站(https://nodejs.org)下载并安装Node.js。创建新的React
2023-10-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录