Postman模拟Selenium Client和Web driver的交互

Selenium是业界广泛使用的用于浏览器自动化的开源工具集。它支持JAVA,Ruby,C#, Python,JavaScript等编程语言。

2004年,由ThoughtWorksJason Hugginsy及其团队开发而来。发展至今,经历了Selenium1, Selenium2, Selenium3和Selenium4四个大版本。本文主要关注Selenium4。

 

Selenium主要由以下三部分组成:

Selenium WebDriver

支持多种开发语言的开源API,可用来模拟真实用户和浏览器进行交互,从而可将用户在浏览器上的访问和交互行为进行自动化。被广泛用于浏览器的自动化测试中。

Selenium IDE

Chrome和Firefox浏览器上的扩展程序,支持录制和重播用户在浏览器上的交互操作。

Selenium Grid

Selenium支持分布式运行的组件。通过Client-Server的模式,允许测试用例在不同的操作系统平台和不同的浏览器中并行运行。

 

本文旨在探讨Selenium4中,selenium Client是如何与Browser Driver交互的,先来看看Selenium4的架构图:

 

Selenium3和Selenium4的最大不同,就是Selenium4放弃了JSON Wire Protocol,转而直接通过W3c web Protocol与各浏览器的Driver进行交互。可能有些同学会问,为什么不早点这么干呢?因为在早期,其实浏览器的Driver都是由Selenium来提供的,浏览器的访问接口也并不统一,所以需要使用JSON Wire Protocol来负责在Selenium Client和各Browser Driver之间传递数据。而在Selenium4阶段,浏览器的访问接口都遵守W3c web Protocol,并且各浏览器自己维护各自的Driver。一句话,浏览器自己的驱动更加标准化了,从而提高了selenium代码的效率和稳定性。

说了这么多,是时候表演真正的技术了。

# -*- coding: utf-8 -*-

from selenium import webdriver

from selenium.webdriver.chrome.service import Service

from webdriver_manager.chrome import ChromeDriverManager

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.by import By

chrome_driver_path = ChromeDriverManager().install()

service = Service(executable_path=chrome_driver_path)

option = webdriver.ChromeOptions()

driver = webdriver.Chrome(service=service, options=option)

driver.get("https://www.baidu.com/")

input_box = driver.find_element(By.ID, "kw")

input_box.send_keys("Hello")

input_box.send_keys(Keys.ENTER)

driver.quit()

不好意思,其实这也没什么技术可言,我就是想用这句话衔接一下。

以前用过selenium的人,可能都知道需要下载与浏览器版本对应的driver,要不然你的selenium代码就会罢工。最要命的是,如果你不去特意设置,我们的浏览器都是会自动更新版本的,这就让driver不匹配的问题防不胜防。而到了selenium4时代,引入了ChromeDriverManager,从而可以根据我们的浏览器当前版本,在代码运行时下载对应的Chrome Driver。其它浏览器也支持这样的功能。当然,ChromeDriverManager并不是我们今天要聊的重点。

我们今天的重点是,手动模拟Selenium Client和Chrome Driver之间的交互。

第一步: 启动Chrome Driver服务

命令行执行命令: chromedriver -port=57789

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lemon2050

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值