量角器/黄瓜/硒运行测试失败,原因是找不到页面上存在的元素

时间:2018-11-09 15:05:16

标签: javascript selenium protractor cucumber

我正在使用量角器(带有Javascript)来运行自动测试。 有时会由于测试失败而导致找不到页面上存在的元素。

我的HTML:

tmp = pd.DataFrame()
for data in url:
    df = pd.read_csv(data)
    tmp = tmp.append(df)
    #df.to_csv(file_name + timestr + '.csv')

# Now, `tmp` will have dataframes for all URL's. You can then write this to `csv

tmp.to_csv(file_name + timestr + '.csv')

我的步骤定义:

<div class="card-date">05 Dec</div>

我在步骤定义中使用browser.wait尝试:

Then('I see a card-date', {timeout: 50*1000} , function (next) {
    var card_date = element(by.css('.card-date'));
    expect(card_date.isPresent()).to.eventually.be.true.and.notify(next);
});

我也尝试过:

    Then('I see a card-date', {timeout: 50*1000} , function (next) {
      var card_date = element(by.css('.card-date'));
      var expected = protractor.ExpectedConditions;
      browser.wait(expected.visibilityOf(card_date));
      expect(card_date.isPresent()).to.eventually.be.true.and.notify(next);
      next();
    });

错误:

browser.driver.wait(function() {
        return card_date.isDisplayed().then(function(IsVisible) {
            return IsVisible;
        });
    }, 10000);
    expect(card_date.isPresent()).to.eventually.be.true.and.notify(next);

我试图通过管理Promise恢复元素的文本,因此我可以确定元素字符串的长度,并检查它是否为大于0的数字。如果此条件为true,则该元素显然存在。但是,当我启动测试时,无法在我的承诺中读取它。控制台日志永远不会显示在我的控制台上。

如果页面上存在该元素,为什么会发生这种情况? 在失败的那一刻,我可以在右侧页面中看到浏览器正常打开,并且该元素始终存在。

0 个答案:

没有答案