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

查看:493
本文介绍了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界面

的角度来看, ChromeDriver和WebDriver有什么区别 接口就像硒中的第三方浏览器供应商之类的协议一样,例如 Mozilla Chrome Internet Explorer Safari 等必须遵循并实现相同的功能.反过来,这将帮助最终用户使用公开的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 类.所有浏览器驱动程序,例如 InternetExplorerDriver PhantomJSDriver

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:

  • Is this correct - FirefoxDriver driver = new FirefoxDriver();?
  • what is the difference between ChromeDriver and WebDriver in selenium?

的角度来看,

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 是用于标识元素节点的抽象当通过协议在远程端和本地端之间进行传输时,它们被简单地称为元素. Web元素标识符是字符串常量,表示为:

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"

您可以在网络驱动程序返回的值

每个元素都有一个关联的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()
  • 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天全站免登陆