我正在使用量角器(带有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,则该元素显然存在。但是,当我启动测试时,无法在我的承诺中读取它。控制台日志永远不会显示在我的控制台上。
如果页面上存在该元素,为什么会发生这种情况? 在失败的那一刻,我可以在右侧页面中看到浏览器正常打开,并且该元素始终存在。