如何在使用 RSelenium 包中的 clickElement 函数后生成新的 url

How to get new generated url after using clickElement function from RSelenium package

我想知道如何在使用 R 的 RSelenium 包中的 clickElement 函数后获得 url。 这是一个例子:

library(RSelenium)
rD <- rsDriver(browser = c("chrome"), 
               chromever = "98.0.4758.102", 
               #extraCapabilities = list(chromeOptions = list(args = list("--headless"))),
               port = 4580L)

driver <- rD[["client"]]

urll <- "https://www.zapimoveis.com.br/venda/fazendas-sitios-chacaras/ms+campo-grande/?pagina=1"

driver$navigate(urll)
 
linkimovdescr <- driver$findElement(using = "xpath",
                                    "/html/body/main/section[1]/div[2]/div[3]/section/div/div[1]")
                 
linkimovdescr$clickElement()

问题来了!如何获取地址"https://www.zapimoveis.com.br/imovel/venda-fazenda-sitio-chacara-parque-do-sol-campo-grande-ms-240m2-id-2531139106/"

注意:linkimovdescr$getCurrentUrl()driver$getCurrentUrl() 命令没有回答我的问题,因为它一直指向主页。

感谢您的帮助。

当您点击该项目时会打开新标签,因此我们需要切换标签才能获得 url。

1.Clicking 项目

linkimovdescr <- driver$findElement(using = "xpath",
                                    "/html/body/main/section[1]/div[2]/div[3]/section/div/div[1]")
                 
linkimovdescr$clickElement()

2.Now 通过 getWindowHandles

获取所有选项卡的列表
df =  driver$getWindowHandles()

3.Now切换到第二个标签

driver$switchToWindow(df[[2]])

4.Get url,

driver$getCurrentUrl() 
[[1]]
[1] "https://www.zapimoveis.com.br/imovel/venda-fazenda-sitio-chacara-zona-rural-campo-grande-ms-30000m2-id-2552129433/"