我正在运行Selenium Standalone Server,版本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服务器)抓取内存,然后不释放它。
我该如何解决这个问题?任何想法?
答案 0 :(得分: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