【问题标题】:Selenium RemoteWebDriver memory issuesSelenium RemoteWebDriver 内存问题
【发布时间】:2012-10-16 09:55:47
【问题描述】:

我正在运行 Selenium 独立服务器,版本 2.25.0

我在 c# 中运行一个程序,通过以下方式执行驱动程序:

DesiredCapabilities capabilities = DesiredCapabilities.HtmlUnit();
capabilities.IsJavaScriptEnabled = false;
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub"), capabilities);

然后我通过driver.FindElement(By.)收集一些信息。

一切正常。

在我全部执行之后

我通过以下方式退出了驱动程序:

driver.Quit();

测试工作正常。但是当我在执行时查看任务管理器时,我可以看到“java.exe”(selenium 服务器)抢占内存,然后没有释放它。

我该如何解决这个问题?有什么想法吗?

【问题讨论】:

    标签: c# .net unit-testing selenium webdriver


    【解决方案1】:

    嗯.... 与我的代码比较:

    public class BaseSeleniumTest extends SeleneseTestBase {
        static WebDriver driver;
    
    
    
        @BeforeClass
        public static void firefoxSetUp() throws MalformedURLException {
    
              DesiredCapabilities capability = DesiredCapabilities.firefox();
    
    
            driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability);
    
    
    
    
            driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
            driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
            driver.manage().window().setSize(new Dimension(1920, 1080));
        }
        @Before
        public void homePageRefresh() throws IOException {
            driver.get("login.base.url");
        }
    
    
        @AfterClass
        public static void closeFirefox(){
            driver.quit();
        }
    
    .....
    }
    

    我没有这样的内存问题。抓取的内存被释放。您能否提供您声明和初始化(创建实例)驱动程序的方式?

    调查了更多: HtmlUnit 似乎正在泄漏内存;怎么了? 确保(a) 您使用的是最新版本的 HtmlUnit,并且(b) 在您完成 WebClient 实例后调用WebClient.closeAllWindows()

    取自here

    【讨论】:

    • 嘿,你的代码是 Java 不是吗?好吧,如果我做简单的操作,我就没有记忆问题。但是我在抓取我的网站时检查了几个链接。我的进程 java.exe 增长到 1.5 gigs ram...
    • 是的。我正在使用硒+ java。嗯...似乎很棘手的问题(更新后的屏幕...
    • 好吧,我发现,当我使用浏览器而不是 HtmlUnit 时,我没有遇到问题,因为浏览器保留的 RAM 会增长,但最终它会正确关闭,因此不需要对 java.exe 的影响。
    • 我创建了驱动程序,然后关闭并退出了它。我正在为 c# 使用最新版本的 selenium。所以我只能打开RemoteWebdriver,最后关闭这个驱动。我想你混合两种不同的方式?我在 Selenium 中使用 HtmlUnit 构建。唯一的选择是:关闭或退出。
    猜你喜欢
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多