Javascript 量角器失败:browser.findElements(…)。all不是函数
第一次尝试e2e测试我的AngularJS应用程序 我有一个“meta”类的ul。ul有两个李的。 我想抓取第一个li并将其与字符串进行比较Javascript 量角器失败:browser.findElements(…)。all不是函数,javascript,angularjs,protractor,Javascript,Angularjs,Protractor,第一次尝试e2e测试我的AngularJS应用程序 我有一个“meta”类的ul。ul有两个李的。 我想抓取第一个li并将其与字符串进行比较 var duration = browser.findElements(by.className('meta')).all(by.tagName('li')).get(1); 但是在运行测试时,我不断得到错误:Failed:browser.findElements(…)。all不是一个函数 我已经尝试了findElement和findElement,并且
var duration = browser.findElements(by.className('meta')).all(by.tagName('li')).get(1);
但是在运行测试时,我不断得到错误:Failed:browser.findElements(…)。all不是一个函数
我已经尝试了findElement和findElement,并且不断得到相同的错误
我偶然发现了前一个问题:。但是这对我没有帮助。最好使用量角器的“default”ElementFinder语法,例如元素(by.css('ul'))
,请参阅
你会得到这个
var duration=element(按.className('meta')).all(按.tagName('li')).get(1)代码>
或者element.all(by.css('.metali')).first()代码>,请参阅
或者速记$$('.metali')).first()代码>,请参见当前接受的答案在您应该使用的方面是正确的,但以下是代码不起作用的原因
您可能知道,量角器包装了WebDriverJS
-selenium javascript绑定。除此之外,它还添加了许多方便的概念,如ElementFinder
或ElementArrayFinder
或浏览器
对象
量角器还提供了一种直接调用纯WebDriverJS
函数和方法的方法,例如,它允许在浏览器
对象上使用findElement()
或findElements()
在您的例子中,browser.findElements(by.className('meta'))
将返回一个WebElement
s数组,这是一个纯粹的WebDriverJS
概念。注意,这不是ElementArrayFinder
实例,此时您不在量角器区域
现在,您试图在这个元素数组上调用.all()
函数,但显然失败了
量角器的方法是:
var duration = $$('.meta li').first();
或者,您甚至可以使用一个选择器:
var duration = $('.meta li:first-of-type');
相关阅读:
非常感谢!你知道为什么我的代码不起作用吗。除了浏览器。这没什么区别。我@alecxe,你能帮我学习高级量角器吗。深入量角器。如何每个承诺的工作,一些有用的链接github的量角器为提前学习。我的问题很广泛,但无论你能提供什么链接,我都可以学习量角器的一些高级概念。@KishanPatel the实际上是一个很好的起点。但是,不要沉溺于太多的理论——只要走出去,把事情自动化:)实践,实践!对量角器文档非常容易理解。我只是按照你说的做一些实际的事情。除此之外,github还有其他重要的文档/存储库吗?