python Selenium

news2025/2/28 20:12:50

Selenium概述

Selenium是一个用于web应用程序测试的工具,模拟浏览器功能,自动执行网页中的is代码,实现动态加载

支持通过各种driver (FirfoxDriver,IternetExplorerDriver,OperaDriver,chromeDriver) 驱动直实浏览器完成测试,Selenium也是支持无界面浏览器操作的

Selenium安装

下载chrome驱动

根据chrome浏览器版本下载驱动

https://registry.npmmirror.com/binary.html?path=chromedriver/

移动至项目文件根目录

安装 selenium

# 这里我选的是3.5.0版本 最好不要选择最新版本
pip install selenium -i  https://pypi.tuna.tsinghua.edu.cn/simple

 Selenium的使用

from selenium import webdriver

# 创建浏览器操作对象
browser = webdriver.Chrome("chromedriver.exe")

# 访问百度网站
url = 'https://www.baidu.com'

browser.get(url)

# 获取网页源码
content = browser.page_source

print(content)

Selenium元素定位

selenium的元素定位:webDriver提供很多定位元素的方法:

老版本写法

  • find_element by_id
  • find_elements_by_name                      
  • find_elements_by_xpath
  • find_elements by_tag_name        
  • find_elements_by_css_selector                 
  • find_elements_by_link_text           

新版本写法

  • find_element
  • find_elments
# 根据xpath选择元素(最常用)
driver.find_element(By.XPATH, '//*[@id="kw"]') 
# 根据css选择器选择元素
driver.find_element(By.CSS_SELECTOR, '#kw') 
# 根据name属性值选择元素
driver.find_element(By.NAME, 'wd') 
# 根据类名选择元素
driver.find_element(By.CLASS_NAME, 's_ipt') 
# 根据链接文本选择元素
driver.find_element(By.LINK_TEXT, 'hao123') 
# 根据包含文本选择
driver.find_element(By.PARTIAL_LINK_TEXT, 'hao') 
# 根据标签名选择
# 目标元素在当前html中是唯一标签或众多标签第一个时候使用
driver.find_element(By.TAG_NAME, 'title') 
# 根据id选择
driver.find_element(By.ID, 'su') 

无界面浏览器使用

Phantomjs

Phantomjs是一个无界面的浏览器,支持页面元素查找,js的执行等,由于不进行css和gui渲染,运行效率要比真实的浏览器要快很多,可以保存快照查看

除phantomjs之外,还可以使用Chrome handless,不过 Chrome handless 有版本要求,这里不在演示

下载Phantomjs

下载地址:Download PhantomJS

使用无界面浏览器

from selenium import webdriver
import time

# 创建浏览器操作对象
browser = webdriver.PhantomJS("phantomjs.exe")

# 访问百度网站
url = 'https://www.baidu.com'

browser.get(url)

# 保存快照
browser.save_screenshot('baidu.png')

time.sleep(2)

input = browser.find_element_by_id('kw')

input.send_keys("陈奕迅")

# 保存快照
browser.save_screenshot('陈奕迅.png')

验证快照 

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

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

相关文章

记一次mysql8 在linux上安装全过程

参照MYSQL官网官方文档安装 1、mysql官网 mysql官网 2、直接进入文档页 找到安装文档 3、找到自己系统对应的安装文档,选合适的安装方式,我这里使用的是YUM方式 a、开始安装之前需要替换yum仓库 具体步骤如下 b、将下载的文件上传至自己的服务器 如下…

安全(权限)框架Shiro概述及原理

1.1 Shiro是什么 Apache Shiro是一个功能强大且易于使用的Java安全(权限)框架。Shiro可以完成:认证、授权、加密、会话管理、与Web集成、缓存 等。借助Shiro您可以快速轻松地保护任何应用程序——从最小的移动应用程序到最大的Web和企业应用…

数据库分片原则和算法

1. 数据分片概念 数据库分片是指将一个大型数据库拆分成多个小型数据库,每个小型数据库称为一个分片。通过这种方式,可以将数据库的负载分散到多个服务器上,从而提升性能瓶颈以及可用性。 数据分片的核心手段就是对关系型数据库进行分库和分表…

【福建事业单位-公共基础-哲学】02唯物辩证法三大规律、认识论、历史唯物主义

【福建事业单位-公共基础-哲学】02唯物辩证法 一、唯物辩证法1.1 对立统一规律方法论 矛盾的不平衡性分析方法论(两点论和重点论)事物发展的内因和外因 1.1总结1.2 质量互变规律量变和质变的关系 方法论 1.3 否定之否定规律总结 二、认识论2.1实践决定认…

智慧工厂管理系统是什么,有什么好用的智慧工厂管理系统

阅读本文您可以了解:1、智慧工厂管理系统的定义;2、智慧工厂管理系统的作用;3、好用的智慧工厂管理系统推荐 一、智慧工厂管理系统是什么 智慧工厂管理系统是一种利用先进的信息技术(如物联网、人工智能、大数据分析等&#xff0…

【C++】做一个飞机空战小游戏(九)——发射子弹的编程技巧

[导读]本系列博文内容链接如下: 【C】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值 【C】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动【C】做一个飞机空战小游戏(三)——getch()函数控制任意造型飞机图标移动 【C】做一个飞…

Linux - 借助 inotifywait,轻松实现 Linux 文件/目录事件监听

文章目录 inotify-tools 依赖包使用示例 inotify-tools 依赖包 [rootVM-24-3-centos ~]# yum install inotify-tools Loaded plugins: fastestmirror, langpacks Repository epel is listed more than once in the configuration Determining fastest mirrors ...... ...... ..…

用pytorch实现Resnet

ResNet(Residual Network)是一种深度卷积神经网络架构,由Kaiming He等人于2015年提出。它在计算机视觉领域引起了革命性的变革,使得训练更深的神经网络成为可能,超越了传统网络架构的限制。 ResNet的主要创新在于…

Matplotlib数据可视化(六)

目录 1.绘制概率图 2.绘制雷达图 3.绘制流向图 4.绘制极坐标图 5.绘制词云图 1.绘制概率图 from scipy.stats import norm fig,ax plt.subplots() plt.rcParams[font.family] [SimHei] np.random.seed() mu 100 sigma 15 x musigma*np.random.randn(437) num_bins …

GUI神器 NXP GUI GUIDER开发工具入门教程

好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录 目录 一、前言 二、下载 三、演示 四、字体和图片/动画等资源 五、总结 一、前言 GUI Guider是恩智浦为LVGL开发了一个上位机GUI设计工…

初识网络原理(笔记)

目录 ​编辑局域网 网络通信基础 IP 地址 端口号 协议 协议分层 TCP / IP 五层网络模型 网络数据传输的基本流程 发送方的情况: 接收方的情况 局域网 搭建网络的时候,需要用到 交换机 和 路由器 路由器上,有 lan 口 和 wan 口 虽…

涨粉明显,播放暴涨5倍,达人在抖音乘风美拉德

美拉德火了! 过去的这个夏天,多巴胺风盛行,无论是街上女孩子们的穿搭,还是店里的陈设,网络上的浏览与讨论,都离不开它。 步入金秋,另一股风刮起。与完美适配夏天五颜六色的多巴胺不同&#xf…

怎么用Python制作一个七夕爱心?

先看效果: 图片效果: 视频效果: 七夕代码效果展示 代码介绍: 这段代码是实现一个用 tkinter 库绘制动态爱心的程序。 用到一些数学函数和常量,例如:sin, cos, pi, log 等等。 定义一个 Heart 类&#x…

msvcp140.dll丢失的解决方法,如何预防msvcp140.dll丢失

在电脑操作系统中经常会弹出类似msvcp140.dll丢失的错误提示窗口,导致软件无法正常运行。为什么会出现msvcp140.dll丢失的情况呢?出现这种情况应该如何解决呢?小编有三种解决方法分享给大家。 一.msvcp140.dll丢失的原因 1.安装过程中受损:在…

Linux下Docker安装及卸载

文章目录 Linux下Docker安装及卸载1 Docker安装及卸载1.1 安装前准备1.2 安装docker软件2.4.3 启动docker2.2.4 测试2.2.5 卸载 Linux下Docker安装及卸载 1 Docker安装及卸载 官方网址:https://docs.docker.com/engine/install/centos/ 1.1 安装前准备 确定你是C…

fedora

about firewall well, I don’t know how to use fedora firewall,but it I come up with that I can use ubuntu’s ufw for blocking evil connection, download wps extremely boredness drove me to install fedora, It can use wps pdf,但我仍然…

学校信息管理系统说明文档

目录 0学生信息管理系统体验教程. 4 0.0Student management异地打开方法:. 4 1. 管理系统设计需求分析. 6 1.1 需求介绍. 6 1.2功能需求. 6 1.2.1 学生信息录入. 6 1.2.2 学生信息查询. 6 1.2.3 权限管理. 6 1.2.4 添加学生信息验证. 6 2.功能介绍. 7 2.1…

LeetCode[491]递增子序列

难度:Medium 题目: 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素,如出现两个整数相等,也可以视…

01 小样本学习 概述

一、前言 小样本学习(Few-Shot Learning)是近几年兴起的一个研究领域,小样本学习旨在解决在数据有限的机器学习任务[参考]。 1.1 小样本学习存在的意义? 近些年,以深度卷积神经网络为代表的深度学习方法在各类机器学…

策略梯度方法

策略梯度方法 数学背景 给定一个标量函数 J ( θ ) J\left(\theta\right) J(θ),利用梯度上升法,使其最大化,此时的 π θ \pi_\theta πθ​就是最优策略。 θ t 1 θ t α ∇ θ J ( θ t ) \theta_{t1}\theta_t\alpha \nabla_\theta…