gpt4 book ai didi

r - 完全结束 RSelenium session 的正确方法?

转载 作者:行者123 更新时间:2023-12-05 01:31:24 27 4
gpt4 key购买 nike

从 R 中完全结束 RSelenium session (包括其所有组成部分)的“正确”方法是什么?

背景

当使用 RSelenium 实现浏览器自动化时,有许多技术在相互作用,它有时会产生奇怪的错误,其中 R session 中的所有内容都会被清理,但一些底层的 chrome/chromedriver/phantom.js/selenium/(其他?)进程还没有结束。这可能会在以后尝试 RSelenium session 时导致问题。

目前我所知道的

RSelenium docs , 显示两种关闭整个过程的某些部分的方法:

方法一

关闭浏览器,然后停止服务器:

# start a chrome browser
rD <- rsDriver()
remDr <- rD[["client"]]
remDr$navigate("http://www.google.com/ncr")
remDr$navigate("http://www.bbc.com")
remDr$close()

# stop the selenium server
rD[["server"]]$stop()

方法二

移除rD(远程驱动)对象,并调用垃圾回收:

# if user forgets to stop server it will be garbage collected.
rD <- rsDriver()
rm(rD)
gc(rD)

我发现的另一件事 ( from a similar question about python ) 是 rD$client$quit()

问题

有了这些可用的方法,确切地说应该做什么(即最佳实践)以完全确保 RSelenium session (以及连接到该 session 的每个进程 - 例如 chrome/chromedriver 等)已经完全关闭,因此它不可能干扰其他 RSelenium session ?

最佳答案

我遇到了问题,Rselenium 会说(在开始新 session 时)一个端口仍在使用中,即使在按照问题中提到的那样关闭所有内容之后也是如此。

我从here发现和 here您(至少在 Windows 上)还需要通过以下方式关闭 Rstudio 中的 Java session :

system("taskkill /im java.exe /f", intern=FALSE, ignore.stdout=FALSE)

关闭 session 并停止服务器并运行 gc()

关于r - 完全结束 RSelenium session 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66380607/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com