python的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的界面

posted @ 2023-11-02 13:11  折翼的小鸟先生  阅读(37)  评论(0编辑  收藏  举报