4 回答

TA貢獻(xiàn)2036條經(jīng)驗 獲得超8個贊
假設(shè)"launch-app-from-dashboard"
正在創(chuàng)建一個新的頁面標(biāo)簽,您可以使用以下模式在新頁面上運行后續(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
由于您無頭運行,因此使用(?docs?)切換瀏覽器中的可見選項卡也可能很有用。

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

TA貢獻(xiàn)1877條經(jīng)驗 獲得超1個贊
browserContext?.pages() 是一個數(shù)組,其中包含您的應(yīng)用程序打開的選項卡,您可以從那里使用臨時頁面進(jì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)驗 獲得超7個贊
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
})
添加回答
舉報