首页 > 编程语言 >python的Selenium基础

python的Selenium基础

时间:2023-11-02 13:23:45浏览次数:32  
标签:webdriver 浏览器 python Selenium 基础 驱动 发送给 selenium

前言:今日写hackergame2023时需要使用 python selenium库故特此来学习

1.1 什么是Selenium

Selenium是python的一个库,作为一套web网站的程序自动化操作解决方案,可以帮我们自动干很多事情。比如

像人一样再浏览器里操纵web界面,比如点击界面,在文本框中输入文字等操作。

而且还能从web界面获取信息

Selenium的自动化原理如下

自动化程序(Selenium客户端库)将请求发送给由浏览器厂商提供的浏览器驱动,浏览器驱动接请求后将请求转变为

浏览器可识别操作,然后发送给浏览器,进行操作。浏览器发送给我们的信息也要先发送给浏览器驱动才能发送到

客户端

我们程序的自动化请求都是通过Selenium库的编程接口发送给浏览器,比如我们要模仿用户的点击操作,就会先

带哦用客户端库对应的函数,然后产生点击元素请求,之后发送给浏览器驱动,浏览器驱动再将其发送给浏览器

自动化程序发送给浏览器驱动的请求是HTTP请求

Selenium组织提供给多种编程语言Selenium客户端库,包括java,python,js,ruby等,方便不同编程语言的开发

者使用。

浏览器驱动则是由浏览器提供的不同的驱动程序,不同的浏览器有不同的浏览器驱动,起到将操作请求转发给浏览

器,再收到响应消息后将http响应转发个自动化程序的作用

自动化程序接受到响应后,将结果转化为数据对象,发送给我们的代码

1.2 前置工作

既然介绍了Selemium的工作原理,自然我们就明白了我们需要安装selenium库和浏览器引擎,由于浏览器引擎再

不同的浏览器都不一样,所以需要根据不同的浏览器进行下载,至于库的下载直接pip即可

如果成功进行了安装可以进行一下测试

from selenium import webdriver
driver = webdriver.Edge()
driver.get('https://www.bilibili.com/')
input("输入")

通过此方式在selenium库中导入webdriver模块

然后创建一个浏览器驱动对象,通过此对象的get方法来打开网页,由于执行完操作后会自动关闭网页,所以通过

加入intput输入来暂停网站的关闭

需要注意的是,浏览器驱动如果没有安装在python解释器根目录下是无法指向上述操作的

driver = webdriver.Edge(service=Service(r'你的浏览器驱动地址'))

需要这样创建浏览器驱动对象才可以

1.3 选择页面的元素

我们可以通过css的选择器来对页面的元素进行选择, 然后对此元素进行控制

例如

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Edge()
driver.get('https://www.baidu.com/')
element = driver.find_element(By.ID, 'kw')
element.send_keys('111\n')
input("aa")

第二行的from selenium.webdriver.common.by import **By用于引入By

然后在后面通过id选择器选中了百度搜索的输入框,在搜索框传入了信息提交

注意,此处在传入给表单的信息是直接提交,并不是输入不提交,所以执行后是百度搜索了111的界面

标签:webdriver,浏览器,python,Selenium,基础,驱动,发送给,selenium
From: https://www.cnblogs.com/rpup/p/17805175.html

相关文章

  • 不会代码,也能批量数据合并,使用Python开发一个图形交互界面
    不会代码,也能批量数据合并,使用Python开发一个图形交互界面大话数据分析​​京东物流经营分析岗​关注他 作为一名数据分析师,日报,周报,月报是少不了的,经常在整理周报或者月报的时候,需要将这周的数据或者该月的数据进行一个汇总,常规地做法是将每一天的数据......
  • yum update (python)
    yumupdate Traceback(mostrecentcalllast): File"/usr/bin/yum",line29,in<module>   yummain.user_main(sys.argv[1:],exit_code=True) File"/usr/share/yum-cli/yummain.py",line375,inuser_main   errcode=main(args) Fi......
  • CentOS 卸载 python
    卸载python2.7rpm-qa|greppython2|xargsrpm-ev--allmatches--nodepswhereispython2|xargsrm-frv-------------------卸载python3rpm-qa|greppython3|xargsrpm-ev--allmatches--nodeps卸载pyhton3whereispython3|xargsrm-frv删除所有残......
  • centos7 python2和python3共存
     ln-s/usr/local/python3/bin/python3/usr/bin/python #测试[root@operationbin]#pip3-Vpip18.1from/usr/local/python3/lib/python3.6/site-packages/pip(python3.6)#使用[root@operationbin]#pip3install包名或者[root@operationbin]#pyth......
  • Java语言基础知识点梳理与总结
    Java语言基础知识点梳理与总结Java是一种广泛应用于软件开发的编程语言,具有丰富的特性和功能。在学习Java语言时,了解以下基础知识点对于建立坚实的编程基础非常重要。本博客将介绍Java语言中的标识符、运算符、流程控制、循环结构、分支结构、数组、方法、类与对象等主要知识点。......
  • python爬虫数据存进mysql数据库
    一、安装mysql和mysqlworkbench我已经在电脑上安装了最新的mysql8.2.0,配置好环境变量,在命令提示符中以管理员的身份初始化并成功启动mysql数据库。前期因为以前的mysql没有卸载干净,导致mysql一直无法启动服务。所以一定要保证以前的mysql卸载干净才能重新安装,以前没有安装过的......
  • python题目:把JSON字符串里面的数据进行替换【杭州多测师_王sir】
    name ,时间戳,value这三个值要变 "tags":[{"values":[{"value": 43.6525,"quality": 192,"timestamp": 00}],"name": "/system/Template_2/Instance_8/system/Property_10",“type”: 12}]} import randomimp......
  • 一文学习mysql基础知识
    1.常见的数据库产品    1)oracle   --甲骨文    2)DB2      --IBM    3)SQLsever--微软    4)MySql    --AB->SUN->甲骨文2.名词解释    字段   --表中的列    记录   --表中的行3.登录远程数据库    1)打开一个终端窗......
  • Util应用框架基础(一) - 依赖注入
    本节介绍Util应用框架依赖注入的使用和配置扩展.文章分为多个小节,如果对设计原理不感兴趣,只需阅读基础用法部分即可.概述当你想调用某个服务的方法完成特定功能时,首先需要得到这个服务的实例.最简单的办法是直接new一个服务实例,不过这样就把服务的实现牢牢绑死了,当你需......
  • python之unicode和encode
    Python中有两种默认的字符串:str和unicode。在Python中一定要注意区分“Unicode字符串”和“unicode对象”的区别。后面所有的“unicode字符串”指的都是python里的“unicode对象”。事实上在Python中并没有“Unicode字符串”这样的东西,只有“unicode”对象。一个传统意义上的un......