1

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」(セレンサーバー)がメモリを取得し、その後解放していないことがわかります。

どうすればこの問題を解決できますか? 何か案は?

4

1 に答える 1

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();
    }

.....
}

そのようなメモリの問題はありません。グラブされたメモリが解放されました。driverを宣言して初期化する(インスタンスを作成する)方法を教えてください 。

ここに画像の説明を入力

もう少し調査しました: HtmlUnitはメモリリークしているようです。どうしたんだ?(a) 最新バージョンの HtmlUnit を使用していること 、および(b) WebClient.closeAllWindows()WebClient インスタンスの使用が終了したときに呼び出していることを確認してください。

ここから撮影

于 2012-10-16T12:08:00.613 に答える