Playwright Java:获取含/home的BrowserContext索引并关闭
实现方法
你可以通过遍历所有浏览器上下文及其下属页面,检查页面URL是否包含/home来定位目标上下文的索引,具体实现如下:
编写索引获取方法
import com.microsoft.playwright.Browser; import com.microsoft.playwright.BrowserContext; import com.microsoft.playwright.Page; import java.util.List; public int getHomeContextIndex(Browser browser) { List<BrowserContext> browserContexts = browser.contexts(); // 遍历所有上下文,带索引 for (int i = 0; i < browserContexts.size(); i++) { BrowserContext currentContext = browserContexts.get(i); // 遍历当前上下文的所有页面 for (Page page : currentContext.pages()) { String pageUrl = page.url(); // 检查URL是否包含目标路径 if (pageUrl.contains("/home")) { return i; // 找到匹配项,立即返回索引 } } } return -1; // 未找到匹配的上下文时返回-1 }
使用方式
调用上述方法时,记得先判断返回值是否为有效索引,避免数组越界异常:
int targetIndex = getHomeContextIndex(browser); if (targetIndex != -1) { browser.contexts().get(targetIndex).close(); } else { // 可添加未找到时的处理逻辑,比如打印日志 System.out.println("未找到包含/home路径的浏览器上下文"); }
注意事项
- 一个浏览器上下文可能包含多个页面,只要其中任意一个页面的URL包含
/home,就会返回该上下文的索引 - 如果存在多个符合条件的上下文,方法会返回第一个匹配的索引
- 返回
-1作为未找到的标识,调用时必须先做判断,防止后续调用get()方法抛出异常
内容的提问来源于stack exchange,提问作者goney225
相关产品推荐
相关产品推荐

