Protractor browser.driver.findElement与browser.findElement
对于非角度应用程序,我们是否可以使用Protractor browser.driver.findElement与browser.findElement,protractor,Protractor,对于非角度应用程序,我们是否可以使用browser.findElement()方法,而不是使用browser.driver.findElement()方法?您只需要使用browser.driver来访问webdriver实例即可: browser.driver.findElement(by.css('[data-ptor="submit-btn"]')); 在您的config.js中,它甚至可以更优雅: onPrepare: function() { global.dvr = brows
browser.findElement()
方法,而不是使用browser.driver.findElement()
方法?您只需要使用browser.driver来访问webdriver实例即可:
browser.driver.findElement(by.css('[data-ptor="submit-btn"]'));
在您的config.js中,它甚至可以更优雅:
onPrepare: function() {
global.dvr = browser.driver;
}
在您的测试中:
dvr.findElement(by.css('[data-ptor="submit-btn"]'));
量角器等待Angular完成其工作,但您可以告诉它不要对非Angular应用程序那么聪明:
beforeEach(function() {
return browser.ignoreSynchronization = true;
});
我猜你的问题是针对
browser.driver.findElement
vsbrowser.element
browser.driver.findElement
方法返回webElement
,它是由webDriver
(Selenium)提供的
当您调用browser.driver.findElement(locator)
时,WebDriver会立即向浏览器发送一个命令,要求浏览器定位元素。这些WebElement
提供了可用于与浏览器交互的操作方法
browser.element
方法返回ElementFinder
对象,该对象由量角器提供
与调用browser.element(locator)
时的WebElement
不同,ElementFinders
只存储定位器信息,但在调用操作方法之前不会要求浏览器查找元素。
这对于创建页面对象非常有用,因为我们可以重用安装程序中定义的内容(在加载页面之前)。
所有WebElement
操作都是包装的,并且可以在ElementFinder
上使用,此外还有由量角器提供的一些其他辅助方法
此外,您还可以始终使用元素(定位器).getWebElement()
访问底层WebElement
,但您不需要这样做,因为您也可以使用浏览器.element(定位器)
方法进行非角度应用