量角器 – 如何测试img标签是否存在?

前端之家收集整理的这篇文章主要介绍了量角器 – 如何测试img标签是否存在?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我期望(img).not.toBe(null),那么我得到一个错误
错误:期望使用WebElement段进行调用,预期一个Promise。你的意思是使用.getText()?我不想让文本在img中,我只想知道标签是否存在于页面上。
describe('company homepage',function() {
it('should have a captcha',function() {

    var driver = browser.driver;
    driver.get('http://dev.company.com/');

    var img =driver.findElement(by.id('recaptcha_image'));

    expect(img.getText()).not.toBe(null);
});
});

通过,但我不知道它是测试正确的事情。将id更改为不存在的值会失败。

如何在非角度的应用程序上下文中使用量角器进行正确的测试?

解决方法

编辑2:

每个编码下面的Smackdown,一个更短的答案现在可以在量角器:

期望砥(真)(元件(by.id( ‘recaptcha_image’))isPresent()。)。

编辑1:

我今天发现了isElementPresent(),这只是我下面描述的一个更可读的快捷方式。见:http://www.protractortest.org/#/api

你的用法是:

driver.isElementPresent(by.id('recaptcha_image')).then(function(present){
    expect(present).toBe(false);
})

老回答(这个工作,但上面是更加读者友好)

一般来说,如果你不确定一个标签将在那里,你应该使用findElements(或者$$这是findElements的别名)。然后测试数组长度。 FindElement(和$)将抛出一个错误,如果它找不到该元素。

因此而不是

var img =driver.findElement(by.id('recaptcha_image'));

expect(img.getText()).not.toBe(null);

使用:

driver.findElements(by.id('recaptcha_image')).then(function(array){
    expect(array.length).not.toBe(0);
})

另外,getText()返回一个承诺,这就是为什么你得到这个错误

原文链接:https://www.f2er.com/html/232656.html

猜你在找的HTML相关文章