Selenium原理以及Python从零实现

这篇具有很好参考价值的文章主要介绍了Selenium原理以及Python从零实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Selenium简介

Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本(这里主要是针对selenium ide)

Selenium历程

04年,诞生了Selenium Core,Selenium Core是基于浏览器并且采用JavaScript编程语言的测试工具,运行在浏览器的安全沙箱中,设计理念是将待测试产品、Selenium Core和测试脚本均部署到同一台服务器上来完成自动化测试的工作。
05年,Selenium RC诞生,就是selenium1 ,这个时候,Selenium Core其实是Selenium RC的核心。
Selenium RC让待测试产品、Selenium Core和测试脚本三者分散在不同的服务器上。(测试脚本只关心将HTTP请求发送到指定的URL上,selenium本身不需要关心HTTP请求由于什么程序编程语言编写而成)
Selenium RC包括两部分:一个是Selenium RC Server,一个是提供各种编程语言的客户端驱动来编写测试脚本
07年,Webdriver诞生,WebDriver的设计理念是将端到端测试与底层具体的测试工具分隔离,并采用设计模式Adapter适配器来达到目标。WebDriver的API组织更多的是面向对象。
08/09年,selenium2诞生,selenium2其实是selenium rc和webdriver的合并,合并的根本原因是相互补充各自的缺点
09年,selenium3诞生,这个版本剔除了selenium rc , 主要由 selenium webdriver和selenium Grid组成, 我们日常使用的其实就是selenium webdriver,至于selenium grid是一个分布式实现自动化测试的工具

Selenium原理

1、访问网站

WebDriver 官方网站

2、webDriver的的http接口:

Selenium原理以及Python从零实现

3、具体原理

首先运行webdriver.exe文件,它会绑定一个http端口,通过http:端口来进行调用相关的接口,webDriver通过对应的浏览器driver(驱动文件)进行调用上述的API,其实Selenium就是封装了这些api实现的一系列的窗口操作,主要就是用restful接口开启的本地端口进行发送API指令,这样driver就可以向浏览器发送对应的指令,即可完成打开浏览器、访问网站、切换Tab窗口等操作。

Python从零实现

Chrome和Firefox的各个版本的driver下载地址

Chrome和Firefox的各个版本的driver下载地址

代码实现:

代码:
import requests
import os
from threading import Thread

if __name__ == '__main__':
    webdriver_path = "/Users/cbaiotaigc/Downloads/chromedriver_mac64/chromedriver"
    # 启动webdriver对应浏览器的驱动,比如说上面的Chrome对应的chromedriver
    Thread(target=lambda: os.system(webdriver_path)).start()

    #
    # requests.post()

Selenium原理以及Python从零实现
上面红框里的端口就是chromedriver程序(windows里是chromedriver.exe)启动的http服务的本地端口。

自动打开一个受控的浏览器

Selenium原理以及Python从零实现
Selenium原理以及Python从零实现
Selenium原理以及Python从零实现

访问某个网址:

https://baidu.com
Selenium原理以及Python从零实现Selenium原理以及Python从零实现

获取页面的title

Selenium原理以及Python从零实现
Selenium原理以及Python从零实现其他的接口调用可以自行封装,即可完整的实现selenium框架的代码。文章来源地址https://www.toymoban.com/news/detail-439494.html

到了这里,关于Selenium原理以及Python从零实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据分析】中介效应的简介、模型、python代码实现以及数据可视化

    当谈到因果关系时,中介效应是一种非常重要的概念。中介效应发生在一个变量(中介变量)部分地中介了另外两个变量之间的关系。 中介效应发生在以下情况下: 一个变量(中介变量)部分地中介了另外两个变量之间的关系。假设自变量X对因变量Y产生了影响,而这种关系

    2024年02月06日
    浏览(40)
  • 从零开始大数据 2 python简介

    迷失在大数据的海洋?别担心,让我们从零开始!🌊  大数据世界的入口通常需要一把编程的钥匙。选择一门合适的编程语言是你迈向大数据领域的关键一步。Python是大数据处理领域的魔法杖,其简洁易读的语法使其成为数据分析和处理的首选。Java也是大数据处理的重要语

    2024年02月02日
    浏览(32)
  • 决策树的原理、方法以及python实现——机器学习笔记

    * * * * * *  The Machine Learning Noting Series  * * * * * * 决 策树(Decision Tree)是机器学习的核心算法之一,在较小训练样本或有限计算资源下仍有较好表现,它包括分类树和回归树,是目前应用最广泛的分类预测和回归预测方法。 0 引言 1 决策树的概念     分类树     回归树 2  

    2024年02月04日
    浏览(51)
  • GBDT算法原理以及实例理解(含Python代码简单实现版)

    GBDT 的全称是 Gradient Boosting Decision Tree ,梯度提升树,在传统机器学习算法中,GBDT算的上是TOP前三的算法。 想要理解GBDT的真正意义,那就必须理解GBDT中的 Gradient Boosting 和 Decision Tree 分别是什么? 1. Decision Tree:CART回归树 首先, GBDT使用的决策树是CART回归树 ,无论是处理回

    2024年02月02日
    浏览(38)
  • 一文速学-XGBoost模型算法原理以及实现+Python项目实战

    目录 前言 一、XGBoost模型概述 1.发展历史 2.算法改进之处 1.损失函数 2.分裂点选择 3.剪枝策略 4.正则化 5.学习率 6.提前停止 二、XGBoost算法原理 1.初始化构造目标函数  2.目标函数变换  变换优势总结 3.将树引入目标函数 4.构建最优树(贪心算法) 三、XGBoost实战-贷款违约预测模

    2024年02月03日
    浏览(49)
  • 一文速学-GBDT模型算法原理以及实现+Python项目实战

    目录 前言 一、GBDT算法概述 1.决策树 2.Boosting 3.梯度提升

    2024年01月15日
    浏览(37)
  • 【云原生 | 从零开始学Docker】一、Docker的安装,启动以及工作原理

    我们知道,传统的项目开发和运维是两套环境,而且要一一配置环境并且有的时候更新还会导致服务不可用,这就很麻烦了,那么有没有一种很方便不用这么麻烦的技术可以一键安装呢?有!那就是我们的Docker。 现在, 用Docker可以打包应用以及环境到一个可移植的镜像中,

    2024年01月16日
    浏览(48)
  • 一个完整Python实战项目:selenium识别验证码实现自动登录,自动操作浏览器获取某东数据

    最近都没啥时间,很久没更新了。 今天分享一下,如何用selenium识别验证码,实现自动登录以及获取数据。 目标:某东 话不多说直接开始 环境 Python 3.10 Pycharm 模块使用 import random import time from selenium import webdriver import pyautogui import base64 import ddddocr import csv win + R 输入cmd 输入安

    2024年02月04日
    浏览(47)
  • 从零开始学习:如何使用Selenium和Python进行自动化测试?

    安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开

    2024年04月23日
    浏览(77)
  • Python实现吃鸡游戏子弹and导弹自动追踪!原来是这样的一个原理啊!

    screen.blit(missile, (x1-missile.get_width(), y1-missile.get_height()/2)) dis_angle=d_angle-old_angle #dis_angle就是到下一个位置需要改变的角度 old_angle=d_angle #更新初始角度 pygame.display.update() 如果仅把导弹考虑为一个质点的话,那么以上算法就已经足矣,我没有做导弹的旋转,因为一个质点也不分头

    2024年03月28日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包