Selenium Web自动化基础

2023-11-05

1.selenium环境配置

selenium是一个python的开源库。使用pip就可以安装
直接在cmd或者pycharm的终端执行pip install selenium。即可完成selenium库的安装。
如果出现以下:
Error: connect time out
安装超时可以用以下镜像源:pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

2、第一个Web自动化脚本

import time
from selenium import webdriver


#  创建浏览器对象,打开浏览器,http://npm.taobao.org/mirrors/chromedriver/
driver = webdriver.Chrome()
# 如果你的浏览器,打开会自动关闭,可以通过sleep让它暂时不关闭
time.sleep(10)

2.1 webdriver配置
方式一:最新版本的selenium会根据浏览器版本自动去下载driver文件,前提是: 环境是可以连外网的,但下载是需要时间
方式二:将webdriver.exe配置为环境变量
点击系统变量->Path->编辑->新建->粘贴Chromedriver的地址
在这里插入图片描述
方式三
创建driver对象时,填写存放driver相对路径:webdriver.Chrome(‘…/lib/chromedriver.exe’)
在这里插入图片描述

2.2网页元素操作
1.定位元素

定位一个元素 定位多个元素 含义
find_element_by_id find_elements_by_id 通过元素id定位
find_element_by_xpath find_elements_by_xpath 通过xpath表达式定位
find_element_by_name find_elements_by_name 通过name表达式定位
find_element_by_link_text find_elements_by_link_text 通过完整超链接定位
find_element_by_partial_link_text find_elements_by_partial_link_text 通过部分链接定位
find_element_by_tag_name find_elements_by_tag_name 通过标签定位
find_element_by_class_name find_elements_by_class_name 通过类名进行定位
find_element_by_css_selector find_elements_by_css_selector 通过css选择器进行定位

在这里插入图片描述

  1. id:在元素里面的,id=“xxx” (id是唯一的)
    ele = driver.find_element(‘id’,‘fm-login-id’)
    或 ele = driver.find_element(By.ID,‘fm-login-id’)
  2. name:在元素里面的,name=“xxx” (name不一定唯一)
    ele = driver.find_element(‘name’,‘fm-login-id’)
  3. class name:在元素里面的,class=“xxx” (class基本不唯一)
    ele = driver.find_element(‘class name’,‘fm-text’)
  4. tag name:在元素最前面<后面这个单词,就是tagname (肯定不唯一)
    ele = driver.find_element(‘tag name’,‘input’)
  5. link text:在标签中间的文本,我们叫链接文本 (不一定唯一)
    ele = driver.find_element(‘link text’,‘淘宝网’)
  6. partial link text:在标签中间的文本包含某个文本就可以 (不一定唯一)
    ele = driver.find_element(‘partial link text’,‘淘宝’)
  7. css selector:在元素dom结构上,右键-copy-copy selector
    ele = driver.find_element(‘css selector’,‘#fm-login-id’)
  8. xpath:在元素dom结构上,右键-copy-copy xpath
    默认复制的xpath就已经兼容了ID定位(所以推荐使用)
    ele = driver.find_element(‘xpath’,‘//*[@id=“fm-login-id”]’)

推荐使用定位方式:
优先使用id(唯一性)
统一使用xpath(通用性)

2.操作元素

常用操作

操作方法 说明 示例
send_keys() 输入 driver.find_element(‘xpath’,‘//*[@id=“password”]’).send_keys(‘123456’)
click() 点击 driver.find_element(‘xpath’,‘//*[@id=“login”]’).click()
text 获取文本 nickname = driver.find_element(‘xpath’,‘//a[@class=“red userinfo”]’).text
get_attribute() get_attribute 获取属性(元素里面 属性=值,都可以通过它获取 get_attribute(‘textContent’)获取元素标签的内容(文本信息)、get_attribute(‘innerHTML’)获取元素内的全部HTML、get_attribute(‘outerHTML’)获取包含选中元素的HTML

3.创建第一个自动化脚本

import time

from selenium import webdriver
driver=webdriver.Chrome('../../lib/chromedriver')
driver.get("https://login.taobao.com/member/login.jhtml?spm=a21bo.jianhua.0.0.56752a89wR1T5S&f=top&redirectURL=http%3A%2F%2Fwww.taobao.com%2F")

ele=driver.find_element('xpath','//*[@id="fm-login-id"]').send_keys('xxxxx')
driver.find_element('xpath','//*[@id="fm-login-password"]').send_keys('xxxxx')
driver.find_element('xpath','//*[@id="login-form"]/div[4]/button').click()
time.sleep(4)
driver.quit()

在这里插入图片描述

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

Selenium Web自动化基础 的相关文章

随机推荐

  • 基于yolov5的火焰识别

    基于yolov5的火焰识别 1 准备工作 yolov5项目下载 下载yolov5项目代码 其链接为 yolov5项目地址 并且在PC机上配置环境 即正常按照requirements安装依赖包 而后根据自身需要下载相应的权重文件 yolov5
  • 如何查看和修改Windows远程桌面端口

    如何查看和修改Windows远程桌面端口 一 查看Windows远程桌面端口 1 查看远程桌面服务TermService进程PID 选择 开始 gt 运行 输入 cmd 打开命令行窗口 执行 tasklist svc find Ter 如果
  • ununtu HI3559A学习笔记

    刚装上ubuntu18 04没有为wifi适配器 原因 没有驱动 网卡mediatek mt7630e 解决 来源 https blog csdn net zw chen article details 78355047 内容 Mediat
  • 全面了解一致性哈希算法及PHP代码实现

    在设计一个分布式系统的架构时 为了提高系统的负载能力 需要把不同的数据分发到不同的服务节点上 因此这里就需要一种分发的机制 其实就是一种算法 来实现这种功能 这里我们就用到了Consistent Hashing算法 在正式介绍Consist
  • 开发者,为什么需要构建知识图谱

    作者简介 安晓辉 10多年开发经验 曾任软件开发工程师 项目经理 研发经理 技术总监等岗位 著有 Qt Quick核心编程 Qt on Android核心编程 你好哇 程序员 等书籍 斜杠青年 技术专家 职业规划师 图书作者 在行西安首批行
  • Set集合转为List集合常见的方式

    将 Set 转为 List 可以有多种方法 以下是两种常见的实现方式 使用构造方法 可以使用 List 的构造方法 ArrayList Collection
  • 使用matlab通过遗传算法实现多元函数极值计算

    这里是对一个二元函数求解极大值问题 如果你希望求解更多元函数 需要添加额外的基因 例如z 在pop数组中添加第三列 染色体的第三列基因 设置新的评判标准函数 fitness 如果你希望提高运算精度 可以尝试增大种群规模 优秀基因出现概率更高
  • flowable(四) - 使用flowable-modeler-ui 定义流程

    步骤 地址 Flowable Modeler http localhost 8080 flowable modeler Flowable Task http localhost 8080 flowable task Flowable Adm
  • 使用Pytorch DataLoader快捷封装训练数据、测试数据的X与Y

    DataSet的用法可以参考 pytorch 构造读取数据的工具类 Dataset 与 DataLoader pytorch Data学习一 DataLoader的封装方法可以参考 Pytorch DataLoader一次性封装多种数据集
  • 在pycharm中升级pip失败和pip安装pytorch torchvision opencv

    pytorch官网 https pytorch org get started locally 查看版本 pip version pip 20 2 3 from c users 14172 pycharmprojects pythonpro
  • ping命令知识详解

    1 Ping的基础知识 Ping 是一个十分好用的TCP IP工具 功能 用来检测网络的连通情况和分析网络速度 2 Ping命令详解 参数意思和使用 t Ping指定的计算机直到中断 a 将地址解析为计算机名 n count 发送 coun
  • Spring--Bean相关

    你对Spring中的bean了解吗 都有哪些作用域 Scope Spring 官方文档对 bean 的解释是 In Spring the objects that form the backbone of your application
  • html2canvas生成图片底部出现白边儿的解决方法

    场景 使用html2canvas的时候 生成的图片底部出现了白边 产生白边原因 可能是由于像素渲染问题导致的 移动设备的屏幕像素密度 Pixel Density 较高 有时会导致在两个相邻元素之间出现细小的间隙或白线 解决方法 将canva
  • 解决 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES) 问题

    解决 ERROR 1045 28000 Access denied for user root localhost using password YES 问题 最近新装好的mysql在进入mysql工具时 总是有错误提示 mysql u r
  • [leetcode 周赛 150] 1161 最大层内元素和

    目录 1161 Maximum Level Sum of a Binary Tree 最大层内元素和 描述 思路 代码实现 1161 Maximum Level Sum of a Binary Tree 最大层内元素和 描述 给你一个二叉树
  • 网络编程(详)

    一 概述 计算机网络 是指将地理位置不同的具有 独立功能的多台计算机及其外部设备 通过通信线路连接起来 在网络操作系统 网络管理软件及网络通信协议的管理和协调下 实现资源共享和信息传递的计算机系统 网络编程 在网络通信协议下 实现网络互连的
  • MATLAB—GUI新手入门教程

    GUI界面基本操作 1 GUI界面介绍 2 各个控件的使用方法 2 1 1 按钮 2 1 2 滑动条 2 1 3 文本框 2 1 4 单选框和复选框和切换按钮 2 1 5 弹出式菜单和列表框 2 1 6 按钮组 2 1 7 菜单编辑器 常见
  • 基于Xml方式Bean的配置-beanName个别名配置

    SpringBean配置详解 Bean的基础配置 例如前文涉及到的配置文件
  • 深入解读SpringBoot是什么?它到底有什么用?

    现在Spring Boot 非常火 各种技术文章 各种付费教程 多如牛毛 可能还有些不知道 Spring Boot 的 那它到底是什么呢 有什么用 今天给大家详细介绍一下 SpringBoot相关的教程 我是跟着动力节点王鹤老师讲的spri
  • Selenium Web自动化基础

    1 selenium环境配置 selenium是一个python的开源库 使用pip就可以安装 直接在cmd或者pycharm的终端执行pip install selenium 即可完成selenium库的安装 如果出现以下 Error c