如何在R语言的selenider中打开新标签页或窗口?
在R中使用selenider+chromote打开新标签页/窗口的实现方法
完全可以实现,下面提供两种常用操作方式,附带标签页切换方法:
方法一:执行JavaScript打开新标签页
利用execute_script()运行原生JS代码触发新标签页,之后手动切换到新窗口:
library(selenider) # 初始化会话 session <- selenider_session( "chromote", options = chromote_options(headless = FALSE), timeout = 10 ) # 执行JS打开新标签页(可传入目标URL,留空则打开空白页) execute_script(session, "window.open('https://example.com');") # 获取所有窗口句柄,切换到最新打开的标签页(最后一个即为新窗口) window_handles <- get_windows(session) switch_to_window(session, window_handles[[length(window_handles)]])
方法二:直接调用chromote的API创建新标签页
selenider的session对象包含底层chromote驱动实例,可直接调用newTab()方法创建标签页,再切换会话上下文:
library(selenider) session <- selenider_session( "chromote", options = chromote_options(headless = FALSE), timeout = 10 ) # 创建新标签页,返回新的chromote会话对象 new_tab_session <- session$driver$newTab() # 将selenider会话切换到新标签页 switch_to_chromote_session(session, new_tab_session)
切换回原标签页
如果需要切回初始标签页,可通过窗口句柄操作:
# 获取所有窗口句柄,切换到第一个窗口(初始标签页) switch_to_window(session, window_handles[[1]])
内容的提问来源于stack exchange,提问作者seansteele
相关产品推荐
相关产品推荐

