在角度应用中使用puppeteer点击链接不起作用

时间:2017-08-24 04:32:06

标签: angular router puppeteer

我试图用木偶操作来测试角应用程序。但是当我尝试点击链接(而不是路由到相应的视图)时,它不起作用。

const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto('https://example.com', {waitUntil: 'networkidle'});
await page.focus('input[name="username"]');
await page.type('username');
await page.focus('input[name="password"]');
await page.type('password');
await page.click('button[type="submit"]');
await page.waitForNavigation({waitUntil: 'networkidle'});

// code below logs https://example.com
// actual url is https://example.com/#home
console.log(page.url())

const link = await page.$('a[href="#/other"]');
await link.click()

// code below logs https://example.com 
// actual url is still https://example.com/#home
console.log(page.url())

点击链接后,感觉就像页面刷新并再次转到同一个网址。 url没有改变可能是因为FrameNavigated事件不是从木偶操纵者那里发出的。那么如何等待角度路由器完成和所有相应的ajax请求结束?

1 个答案:

答案 0 :(得分:0)

美好的一天 尝试等待导航

await page.waitForNavigation(5);