Oly*_*lya 11 javascript tabs webautomation node.js playwright
我正在寻找针对当前情况的更简单的解决方案。例如,您打开 google(任何其他网站),并且希望通过单击按钮(例如 Gmail)- 使用 Playwright 在新选项卡中打开此页面。
let browser, page, context;
describe('Check the main page view', function () {
before(async () => {
for (const browserType of ['chromium']) {
browser = await playwright[browserType].launch({headless: false});
context = await browser.newContext();
page = await context.newPage();
await page.goto(baseUrl);
}
});
after(async function () {
browser.close();
});
await page.click(tax);
const taxPage = await page.getAttribute(taxAccount, 'href');
const [newPage] = await Promise.all([
context.waitForEvent('page'),
page.evaluate((taxPage) => window.open(taxPage, '_blank'), taxPage)]);
await newPage.waitForLoadState();
console.log(await newPage.title());
Run Code Online (Sandbox Code Playgroud)
Oly*_*lya 12
it('Open a new tab', async function () {
await page.click(button, { button: "middle" });
await page.waitForTimeout(2000); //waitForNavigation and waitForLoadState do not work in this case
let pages = await context.pages();
expect(await pages[1].title()).equal('Title');
Run Code Online (Sandbox Code Playgroud)
您可以将 a 传递modifier给该click函数。在 Macos 中,这是Meta因为您需要使用 cmd+单击在新选项卡中打开。在 Windows 中它会是Control.
const browser = await playwright["chromium"].launch({headless : false});
const page = await browser.newPage();
await page.goto('https://www.facebook.com/');
var pagePromise = page.context().waitForEvent('page', p => p.url() =='https://www.messenger.com/');
await page.click('text=Messenger', { modifiers: ['Meta']});
const newPage = await pagePromise;
await newPage.bringToFront();
await browser.close();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34350 次 |
| 最近记录: |