protractor.e2e-sepc.ts
import {browser, element, by} from 'protractor';
describe('Open the link', () => {
beforeEach(() => {
browser.waitForAngularEnabled(false);
browser.get('url');
browser.sleep(2000);
});
it('Click on more button', () => {
element(by.id('more').click();
})
})
当我在chrome上运行上述测试用例作为浏览器时,它运行成功,但是当我使用chrome - 无头浏览器运行它时,它显示错误为No element found using locator: By(css selector, *[id="more"])
protractor.config.js
multiCapabilities: [{
'browserName': 'chrome',
'chromeOptions': {
args: ["--headless", "--disable-gpu"]
}
}]
答案 0 :(得分:1)
我的假设是2秒的睡眠是不够的,你需要explicitly wait才能显示所需的元素:
var more = element(by.id('more'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(more), 10000)
more.click();
请注意,你有一个错过的右括号,但我认为这只是一个错字:
element(by.id('more')).click();
// HERE^