4 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
假設(shè)"launch-app-from-dashboard"
正在創(chuàng)建一個(gè)新的頁面標(biāo)簽,您可以使用以下模式在新頁面上運(yùn)行后續(xù)代碼行。
// Get page after a specific action (e.g. clicking a link)
const [newPage] = await Promise.all([
? context.waitForEvent('page'),
? page.click('a[target="_blank"]') // Opens a new tab
])
await newPage.waitForLoadState();
console.log(await newPage.title());
page.bringToFront
由于您無頭運(yùn)行,因此使用(?docs?)切換瀏覽器中的可見選項(xiàng)卡也可能很有用。

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
假設(shè)您只創(chuàng)建了一個(gè)頁面(通過瀏覽器上下文),但由于某種原因,打開了新頁面/選項(xiàng)卡。您可以通過 : 獲得所有頁面的列表context.pages
,現(xiàn)在該列表的每個(gè)元素代表一個(gè)<class 'playwright.async_api._generated.Page'>對象。所以,現(xiàn)在您可以將每個(gè)頁面分配給任何變量并訪問它。(例如。page2 = context.pages[1]
)

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
browserContext?.pages() 是一個(gè)數(shù)組,其中包含您的應(yīng)用程序打開的選項(xiàng)卡,您可以從那里使用臨時(shí)頁面進(jìn)行切換,一旦完成驗(yàn)證,您就可以切換回來。
playwright.pageMain: Page = await playwright.Context.newPage();
playwright.pageTemp: Page;
// Save your current page to Temp
playwright.pageTemp = playwright.pageMain;
// Make the new tab launched your main page
playwright.pageMain = playwright.browserContext?.pages()[1];
expect(await playwright.pageMain.title()).toBe('Tab Title');

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊
it('Open a new tab and check the title', async function () {
await page.click(button, { button: "middle" }); //to open an another tab
await page.waitForTimeout(); // wait for page loading
let pages = await context.pages();
expect(await pages[1].title()).equal('Title'); /to compare the title of the second page
})
添加回答
舉報(bào)