python selenium菜鸟教程,selenium基本原理

  python selenium菜鸟教程,selenium基本原理

  Selenium是测试Web应用程序用户界面(UI)的通用框架。它是运行端到端功能测试的强大工具。可以用多种编程语言编写测试(目前支持的语言有Java、Python、Ruby、C#),Selenium可以在一个或多个浏览器中执行这些测试。最常用的硒是硒2和硒3。你可以了解到,selenium3是selenium2的升级版,主要更新内容如下:

  摆脱对selenium rc的支持,拥抱java 8。如果你需要使用selenium的java绑定,那么你必须使用java 8。支持MacOS (Sierra或更高版本)和官方safaridriver。Edge浏览器由ms的官方webdriver服务器支持.仅支持ie 9.0及以上版本。火狐得到了Mozilla官方geckodriver的支持。Firefox从版本47开始就一直使用Gecko引擎,支持多进程。简单来说,如果你想在最新版本的浏览器中测试你的产品,你必须使用selenium3!

  我来详细解释一下selenium的两个核心问题:

  1.支持多种语言;

  2.您可以在多种浏览器中运行脚本

  下图总结了Selenium的架构。

  蓝图硒语言绑定就是我们平时用的编码语言,包括java,python等等。可以看到,这些语言并不直接与浏览器驱动程序通信,而是通过JSON Wire。

  协议,这是webdriver协议。详情请参考https://www.w3.org/TR/webdriver/。

  简单来说,他定义了一个windows套接字规范。以我们最熟悉的点击操作为例,他对应的接口协议是:

  POST /session/{session id}/element/{element id}/click

  这样,不管我们编码使用python代码来执行点击操作:

  driver.find_element_by_id( )。单击()

  或者在java代码中单击:

  driver.findElement(By.id())。单击();

  点击操作会通过selenium客户端的程序转换成相应的webdriver协议。这样,浏览器驱动只需要解析具体的协议,不需要关注客户端使用什么样的代码。这就是selenium支持多种语言的原理。

  你可以在浏览器驱动中看到每个浏览器的驱动。这里我们以chromedriver为例来说明。直接在代码中添加新的chromeDriver()会启动一个ChromeDriver进程。ChromeDriver是一个独立的服务。它是google为网站开发者提供的自动化测试接口,是selenium和Chrome浏览器之间的桥梁。Chrome解析webdriver协议,然后根据解析结果调用相应的远程调试协议控制chrome浏览器。它可以和浏览器内核交互,然后控制浏览器,这里就不详细介绍协议了。以上是selenium控制Chrome浏览器的原理。

  以此类推,你就明白为什么用selenium2和3控制不同的浏览器需要先下载相应的浏览器驱动了。

  推荐文章:使用ChromeDevTools协议编写自己的ChromeDriver

  https://www.toutiao.com/i6855474741063778828/

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: