硒控制浏览器的功能在哪里?

问题描述 投票:1回答:2

Selenium的功能在哪里?

我在某处读过语言绑定或API提供粘合代码以在java中使用Selenium。

胶水代码或绑定代码:连接不兼容的软件组件的代码。

Jason Huggings编写了JavaScriptTestRunner来控制浏览器。控制浏览器的功能在于JavaScriptTestRunner。它遭受同源政策的影响。 Paul Hammant创建了HTTP代理以绕过同源策略。这打开了以多种语言编写测试的大门。我们提供了一个API来编写测试。

然后创建WebDriver。 WebDriver和RC合并形成Selenium 2。

控制浏览器的功能在哪里?

  • 在API内?
  • 在浏览器驱动程序中?

为什么API被称为胶水代码或绑定代码?它绑定什么?

selenium selenium-webdriver webdriver selenium-rc same-origin-policy
2个回答
3
投票

Selenium在该术语的一般用法中是一个库 - 一个以模块和包组织的代码集合。在这种形式,它是一个WebDriver client - it can communicate with that kind of server, following the WebDriver protocol; thus enabling a programmer to control a browser.

控制浏览器的功能在哪里?

WebDriver协议中,and the server that translates the WebDriver commands to browser instructions, and back。 作为客户端的Selenium使您能够以您选择的语言使用此功能 - 方便地,您无需学习或直接运行WebDriver请求并解析其响应。

为什么API被称为胶水代码或绑定代码?它绑定什么?

在编程中,绑定是库的统一/或定义良好的API,它将较低级别的代码(其他程序或操作系统)或协议(在本例中为WebDriver)连接到更高级别的概念 - 代码。 Wikipedia to the rescue, with more details


0
投票

胶水代码

Glue Code是可执行代码,通常是源代码,用于调整原本不兼容的代码的不同部分。胶水代码不会为满足任何程序requirements提供任何功能。相反,它经常出现在代码中,允许现有的库或程序在interoperate之间,如语言绑定或foreign function interfaces。胶水代码可以用与胶合在一起的代码相同的语言编写,也可以用单独的glue language编写。在快速原型设计环境中,胶水代码非常有效,在这种环境中,几个组件可以快速组合成一种语言或框架。


JavaScriptTestRunner

Jason Huggins在ThoughtWorks上测试内部应用程序时减少了手动逐步完成相同测试所需的时间,因为他开发了一个可以驱动与网页交互的Javascript库,这使得他可以自动重新运行针对多个浏览器的测试。他将此程序命名为JavaScriptTestRunner。后来,他把JavaScriptTestRunner打开了。这个库最终成为了Selenium Core,它是Selenium Remote Control (RC)Selenium IDE的所有功能的基础。

不幸的是,要在Same Origin Policy中工作,Selenium Core必须与被测应用程序(AUT)放在同一个原点。因此,另一位ThoughtWork工程师Paul Hammant创建了一个服务器,该服务器将充当HTTP代理,在虚构的URL下屏蔽AUT,嵌入Selenium Core和一组测试,并将它们交付为来自同一个来源。该系统被称为Selenium遥控器(Selenium RC)或Selenium 1。


为什么要使用HTTP代理

同样,当Web框架变得越来越复杂和强大时,Web浏览器的沙盒Javascript环境的限制越来越限制了Selenium Core的有效性。 Simon想要一个测试工具,它使用浏览器和操作系统的“本机”方法直接与浏览器对话,从而避免了沙盒Javascript环境的限制。那是当WebDriver和Selenium RC合并形成Selenium 2.所有与Web浏览器通信的WebDriver实现都是使用通用的有线协议开始的。该线协议使用RESTful web service定义了JSON over HTTP


结论

简而言之,控制浏览器的功能始终在Javascript库中,该库驱动与作为JavaScriptTestRunner和后来的Selenium Core的一部分的网页的交互。

根据下面关于不同类/接口的图表,控制浏览器的功能是使用selenium-api

© www.soinside.com 2019 - 2024. All rights reserved.