• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Postman模拟Selenium Client和Web driver的交互

武飞扬头像
Lemon2050
帮助1

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.百度.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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfjfbi
系列文章
更多 icon
同类精品
更多 icon
继续加载