2

我正在尝试使用 puppeteer 来测试 Angular 应用程序。但是当我尝试单击链接时它不起作用(不路由到相应的视图)。

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事件不是从 puppeteer 发送的。那么我如何等待角度路由器完成和所有相应的 ajax 请求结束呢?

4

1 回答 1

0

美好的一天尝试等待导航

await page.waitForNavigation(5);
于 2017-08-26T04:44:10.377 回答