Selenium 中的 WebDriver 和 WebElement 有什么区别? [英] What is the difference between WebDriver and WebElement in Selenium?

查看:37
本文介绍了Selenium 中的 WebDriver 和 WebElement 有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Selenium 中的 WebDriver 和 WebElement 有什么区别?

What is the difference between WebDriver and WebElement in Selenium?

示例代码:

WebDriver driver = new FirefoxDriver();      
driver.get("http://www.google.com");      
WebElement s  = driver.findElement(By.name("q"));      
s.sendKeys("Packt Publishing");      
s.submit();

推荐答案

WebDriver Interface

Selenium 的角度来看,ChromeDriver 和 WebDriver 有什么区别在 selenium 中? 接口类似于第三方浏览器供应商MozillaChrome的协议>、Internet ExplorerSafari 等必须遵守并实施相同的内容.这反过来又会帮助最终用户使用公开的 API 编写通用代码并在所有可用浏览器中实现功能而无需任何更改.

WebDriver Interface

From Selenium's perspective, the What is the difference between ChromeDriver and WebDriver in selenium? interface is similar like a agreement which the 3rd party Browser Vendors like Mozilla, Chrome, Internet Explorer, Safari, etc have to adhere and implement the same. This would in-turn help the end-users to use the exposed APIs to write a common code and implement the functionalities across all the available browsers without any change.

通过代码行:

WebDriver driver = new FirefoxDriver();

我们正在创建 WebDriver 接口 的一个实例,并将它转换FirefoxDriver 类.所有浏览器驱动程序,如FirefoxDriver, ChromeDriver, InternetExplorerDriverPhantomJSDriverSafariDriver 等实现了 WebDriver 接口(实际上是 RemoteWebDriver 类实现了WebDriver 接口浏览器驱动扩展了RemoteWebDriver).因此,如果我们使用 WebDriver 驱动程序,那么我们可以将已经初始化的 driver 实例(作为公共对象变量)用于我们想要自动化的所有浏览器,例如Mozilla、Chrome、InternetExplorer、PhantomJS、Safari.

We are creating an instance of the WebDriver Interface and casting it to FirefoxDriver class. All the Browser Drivers like FirefoxDriver, ChromeDriver, InternetExplorerDriver, PhantomJSDriver, SafariDriver etc implemented the WebDriver interface (actually the RemoteWebDriver class implements WebDriver Interface and the browser drivers extends RemoteWebDriver). So if we use WebDriver driver, then we can use the already initialized driver instance (as common object variable) for all browsers we want to automate e.g. Mozilla, Chrome, InternetExplorer, PhantomJS, Safari.

WebDriver driver = new FirefoxDriver();
driver = new ChromeDriver();
driver = new FirefoxDriver();
driver = new SafariDriver();

您可以在以下位置找到详细的讨论:

You can find a detailed discussion in:

Selenium 的角度来看,WebElement 代表一个 HTML 元素.一般来说,所有与页面交互的操作都会通过这个接口来完成.

From Selenium perspective, WebElement represents an HTML element. Generally, all the operations to do with interacting with a page will be performed through this interface.

WebElement 是用于标识 元素节点的抽象当它通过协议在远程和本地端之间传输时,它们被简单地称为元素.网页元素标识符是字符串常量,表示为:

A WebElement is an abstraction used to identify the Element nodes and are simply known as elements when it is transported via the protocol, between remote and local ends. The web element identifier is the string constant expressed as:

"element-6066-11e4-a52e-4f735466cecf"

您可以在 webdrivers 返回的值

每个元素都有一个关联的 Web 元素引用,可以在所有浏览上下文中唯一标识该元素.表示相同元素的每个元素的 Web 元素引用必须相同.必须是字符串,并且应该是生成UUID的结果.

Each element has an associated web element reference that uniquely identifies the element across all browsing contexts. The web element reference for every element representing the same element must be the same. It must be a string, and should be the result of generating a UUID.

一个 ECMAScript 对象代表一个网络元素,如果它有一个 web 元素标识符自己的属性.

An ECMAScript Object represents a web element if it has a web element identifier own property.

每个浏览上下文都有一个相关的已知元素列表.当浏览上下文被丢弃时,已知元素列表也随之被丢弃.

Each browsing context has an associated list of known elements. When the browsing context is discarded, the list of known elements is discarded along with it.

您可以在为什么返回类型的 findElement(by) 是 WebElement 吗?

一些常用的关联方法如下:

Some of the commonly used associated methods are as follows:

  • clear()
  • click()
  • findElement(By by)
  • findElements(By by)
  • getAttribute(java.lang.String name)
  • getCssValue(java.lang.String propertyName)
  • getLocation()
  • getRect()
  • getSize()
  • getTagName()
  • getText()
  • isDisplayed()
  • isEnabled()
  • isSelected()
  • sendKeys(java.lang.CharSequence...keysToSend)
  • submit()

这篇关于Selenium 中的 WebDriver 和 WebElement 有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆