首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >browser.driver.findElement对browser.findElement

browser.driver.findElement对browser.findElement
EN

Stack Overflow用户
提问于 2017-08-08 19:07:29
回答 2查看 5.2K关注 0票数 2

我们能不能用browser.findElement()方法来代替browser.driver.findElement()方法来应用非角度的应用呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-01 08:31:05

我猜你的问题是关于browser.driver.findElementbrowser.element

browser.driver.findElement方法返回由webDriver(Selenium)提供的webElement

当您调用browser.driver.findElement(locator)时,WebDriver立即向浏览器发送命令,要求它定位元素。这些WebElement提供了可用于与浏览器交互的操作方法。

browser.element方法返回由protractor提供的ElementFinder对象。

WebElement在调用browser.element(locator)时不同,ElementFinders只存储定位器信息,但在调用操作方法之前不会要求浏览器查找元素。

这对于创建页面对象是很好的,因为我们可以重用在安装程序中定义的东西(在加载页面之前)。

除了由量角器提供的几个其他辅助方法之外,所有WebElement操作都可以在ElementFinder上包装和使用。

此外,您还可以使用WebElement访问底层element(locator).getWebElement(),但是您不应该需要这样做,因为您也可以对非角度应用程序使用browser.element(locator)方法。

票数 3
EN

Stack Overflow用户

发布于 2017-08-09 07:05:27

您只需要使用browser.driver访问webdriver实例

代码语言:javascript
复制
browser.driver.findElement(by.css('[data-ptor="submit-btn"]'));

在您的config.js中,它可能更优雅:

代码语言:javascript
复制
onPrepare: function() {
   global.dvr = browser.driver;
}

在你的测试中:

代码语言:javascript
复制
dvr.findElement(by.css('[data-ptor="submit-btn"]'));

尽管你可以告诉它,在你的非角度应用程序上不要那么聪明,但量角器等待它完成它的工作:

代码语言:javascript
复制
beforeEach(function() {
   return browser.ignoreSynchronization = true;
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45576268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档