【问题标题】:Tests of a non-angular page with protractor cannot click on a link element使用量角器测试非角度页面无法单击链接元素
【发布时间】:2019-03-07 20:40:40
【问题描述】:

我正在尝试访问非角页面,例如 google.com,然后单击该页面上的链接。 我正在使用带有黄瓜插件的量角器。 我的黄瓜功能是这样的:

Feature: Google

Scenario: Google test
Given I visit google
When I click the link
Then result

步骤定义如下所示:

Given('I visit google', function(callback) {
    browser.driver.get('https://www.google.com')
        .then(callback);
});
When('I click the link', function() {
   browser.driver.findElement(by.linkText('Images')).click();
});
Then('result', function() {

});

运行量角器时,页面打开,但未点击链接(未加载 Google 图片搜索)

如何让被点击的链接重定向到谷歌图片搜索?

【问题讨论】:

    标签: javascript angular testing protractor cucumber


    【解决方案1】:

    click() 的末尾有一个额外的大括号; 此外,由于量角器脚本是异步的,因此可能会发生单击,因为它们执行得更快。 给一些睡眠和检查,这仅用于测试目的,因为 ExpectedConditions 用于显式等待:

    如下更新sn-p并试一试:

    When('I click the link', function() {
       browser.wait(EC.visibilityOf(element(by.linkText("Images"))).then(()=>{
          browser.driver.findElement(by.linkText('Images')).click();
          browser.sleep(3000);
        });
    });
    

    干杯!

    【讨论】:

    • 感谢您的回答。在我的问题中,额外的大括号是一个错字。测试在页面加载之前显示为通过,睡眠调用没有帮助。如何等待网站完成加载?
    • 您可以使用预期的条件,如下所示: browser.wait(EC.visibilityOf(element(by.css("#element_id"))), 5000, 'Loading Homeview Failed');此处浏览器将等待,直到 element_id 元素可见,否则将抛出错误 - Loading Homeview Failed
    • 你的意思是 browser.driver.findElement 而不是 element,对吧?这也不起作用(我在“When”中的 findElement 之前添加了该行)。我收到以下错误:“无法找到元素:图像”
    • 我更新了如何使用.then,请尝试使用那个sn-p!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多