Playwright(C#)中点击元素新开标签页后如何切换页面?
解决方案
不需要创建新的浏览器上下文,你当前的代码其实已经拿到了新标签页的页面实例——就是你定义的newPage变量,直接用它操作就相当于切换到新标签页了。
原理说明
在Playwright中,同一个浏览器上下文(Context)下的多个Page对象就对应浏览器的不同标签页/窗口。你用的context.RunAndWaitForPageAsync方法,就是专门用来捕获点击操作后新打开的Page实例的,所以这段代码执行完成后,newPage已经是新标签页的句柄了。
怎么用这个实例
你可以直接在newPage上调用Playwright的页面操作方法,比如:
// 获取新标签页的标题 var title = await newPage.TitleAsync(); // 在新标签页里查找元素 var element = await newPage.Locator("#some-element").FirstAsync(); // 执行点击等操作 await element.ClickAsync();
切回原标签页
如果之后需要回到原来的页面(比如点击前的首页),直接用你原来的页面实例(比如_homePage对应的页面对象)就行,不需要额外的切换步骤。
内容的提问来源于stack exchange,提问作者laxsore
相关产品推荐
相关产品推荐

