我正在使用量角器进行e2e测试,但我有一个奇怪的问题。我的测试在“Chrome”上运行良好,但是当我选择“Internet Explorer”时,一些对象找不到,我的测试失败了。为什么?我可以用它做什么?
规范失败的示例:
describe('ps-grid-column-filter-range_spec_1.1.a', function() {
var config = browser.params;
var req = config.req_lib_filter;
require(req);
var tester_column_number = config.column_number_filter;
var tester_url = config.url_filter;
var filter_field = element(by.xpath("//td[@class='ng-scope n-grid__filter']["+ tester_column_number +"]"));
var balloon_info = $('div[class="n-balloon n-balloon_bottom_left n-balloon_can_close n-balloon_info"]');
beforeEach(function() {
browser.get(tester_url);
});
it('balloon should contain text',function(){
filter_field.click();
browser.sleep(3000);
var balloon_text = (balloon_info.element(by.css('div'))).element(by.css('span'));
var height = balloon_info.getAttribute("style");
expect(height).toContain("height: 50px;");
expect(balloon_text.getText()).toContain('Допустимо вводить диапазон от');
expect(balloon_text.getText()).toContain('Например:');
if (true) console.log("ps-grid-column-filter-range_spec_1.1.a : text1");
});
it('should show balloon',function(){
filter_field.click();
browser.sleep(3000);
if (balloon_info.isPresent()) expect(balloon_info.isDisplayed()).toBe(true);
else expect(true).toBe(false);
if (true) console.log("ps-grid-column-filter-range_spec_1.1.a : text2");
});
});
在'Chrome'中它可以使用,但在'Internet Explorer'中我收到错误:
NoSuchElementError: No element found using locator BycssSelector("div[class="n-balloon n-balloon_bottom_left n-balloon_can_close n-balloon_info"]")
答案 0 :(得分:0)
使用IE浏览器总是可以做些额外的工作。
在您的情况下,我会尝试以下方法:
添加显式等待,而不是browser.sleep()
:
filter_field.click();
var EC = protractor.ExpectedConditions;
browser.wait(balloon_info, 5000);
点击过滤器通过javascript:
browser.executeScript("arguments[0].click();", filter_field);