如果我们创建: chrome 驱动程序方法将被执行。 如果我们创建: 再次执行ChromeDriver方法[根据方法覆盖]。 那为什么我们只在执行时写后一个呢? ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
Selenium 中的 WebDriver 和 WebElement 有什么区别?
示例代码:
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
WebElement s = driver.findElement(By.name("q"));
s.sendKeys("Packt Publishing");
s.submit();
从Selenium的角度来看, Selenium 中的ChromeDriver 和 WebDriver有什么区别? 界面类似于Mozilla 、 Chrome 、 Internet Explorer 、 Safari等第三方浏览器供应商必须遵守和实施的协议。 这反过来将帮助最终用户使用公开的 API 编写通用代码并在所有可用浏览器中实现功能,而无需任何更改。
通过这行代码:
WebDriver driver = new FirefoxDriver();
我们正在创建WebDriver 接口的实例并将其转换为FirefoxDriver类。 所有浏览器驱动程序,如FirefoxDriver 、 ChromeDriver 、 InternetExplorerDriver 、 PhantomJSDriver 、 SafariDriver 等都实现了WebDriver接口(实际上RemoteWebDriver类实现了WebDriver 接口,浏览器驱动程序扩展了RemoteWebDriver )。 因此,如果我们使用WebDriver driver
,那么我们可以将已经初始化的驱动程序实例(作为公共对象变量)用于我们想要自动化的所有浏览器,例如 Mozilla、Chrome、InternetExplorer、PhantomJS、Safari。
WebDriver driver = new FirefoxDriver();
driver = new ChromeDriver();
driver = new FirefoxDriver();
driver = new SafariDriver();
您可以在以下位置找到详细讨论:
从Selenium 的角度来看, WebElement代表一个 HTML 元素。 通常,与页面交互的所有操作都将通过该接口执行。
WebElement是用于标识Element 节点的抽象,当它通过协议在远程和本地端之间传输时简称为元素。 Web 元素标识符是字符串常量,表示为:
"element-6066-11e4-a52e-4f735466cecf"
您可以在Webdrivers 返回的值中找到详细讨论
每个元素都有一个关联的 Web 元素引用,它在所有浏览上下文中唯一标识该元素。 表示相同元素的每个元素的 Web 元素引用必须相同。 它必须是一个字符串,并且应该是生成 UUID 的结果。
如果 ECMAScript对象具有 Web 元素标识符自己的属性,则它表示一个 Web 元素。
每个浏览上下文都有一个相关的已知元素列表。 当浏览上下文被丢弃时,已知元素列表也随之被丢弃。
您可以在为什么 findElement(By by) 的返回类型是 WebElement?
一些常用的关联方法如下:
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()
WebDriver类侧重于广义上的浏览器驱动。 它加载页面,切换到不同的窗口/框架,获取页面标题等。不特定于页面元素的广泛操作。
WebElement专注于与您找到的特定元素进行交互。 像:
WebDriver 和 WebElement 之间唯一真正重叠的是 findElement 和 findElements 方法。 对于Webdriver ,这些方法将给定的 By 定位在页面上的任何位置。 对于WebElement,这些方法在该元素的上下文中(通常在其中)定位给定的 By。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.