java - 使用 Serenity BDD 进行自动化测试时出现堆内存不足错误

标签 java selenium out-of-memory heap-memory serenity-bdd

要运行我的自动化测试,我需要通过浏览器(文档签名者)运行 java 应用程序。我找到的解决方案是使用 firefox 配置文件,其中已经记住了运行 java 应用程序的选项。由于我使用的是 Serenity BDD,因此我只是将 firefox 配置文件路径作为参数传递到 serenity 属性文件中。

Document signer

但是,当我将 Firefox 配置文件作为参数传递时,测试返回内存不足异常。我拿了堆转储来分析,但我无法想出任何解决方案。

java.lang.OutOfMemoryError: Java heap space
    at com.google.common.collect.ImmutableSortedMap.forEach(ImmutableSortedMap.java:588)
    at com.google.common.collect.SingletonImmutableBiMap.forEach(SingletonImmutableBiMap.java:65)

所以我尝试将-Xms和-Xmx的值分别增加到4096m和8192m,但现在Serenity就是无法实例化webdriver。 geckodriver 的路径也在 serenity 属性文件中找到,并且是正确的。

net.thucydides.core.webdriver.DriverConfigurationError: Could not instantiate new WebDriver instance of type class org.openqa.selenium.firefox.FirefoxDriver (Unable to write to underlying appendable
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'D01266052', ip: '10.10.244.89', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_181'
Driver info: driver.version: ProvideNewDriver). See below for more details.
    at es.indra.autotestes.automation_project.pages.efisco.LoginPage.navegarLoginEfisco(LoginPage.java:47)
    at es.indra.autotestes.automation_project.pages.efisco.LoginPage.realizarLogin(LoginPage.java:72)
    at es.indra.autotestes.automation_project.steps.efisco.common.CommonSteps.realizarLoginEfisco(CommonSteps.java:22)
    at es.indra.autotestes.automation_project.steps.efisco.icms.IsencaoIcmsDiversosSteps.receberPedidoDeIsencaoDeIcms(IsencaoIcmsDiversosSteps.java:11)
    at es.indra.autotestes.automation_project.features.isencao_icms.IsencaoIcmsDiversosRunner.testeAReceberIsencaoDeIcmsDiversos(IsencaoIcmsDiversosRunner.java:32)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

这是我从堆转储中捕获的​​线程堆栈:

Heap dump leak suspect

Forwarding newSession on session null to remote
  at java.lang.OutOfMemoryError.<init>()V (Unknown Source)
  at java.util.Arrays.copyOf([CI)[C (Unknown Source)
  at java.lang.AbstractStringBuilder.ensureCapacityInternal(I)V (Unknown Source)
  at java.lang.AbstractStringBuilder.append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder; (Unknown Source)
  at java.lang.StringBuffer.append(Ljava/lang/String;)Ljava/lang/StringBuffer; (Unknown Source)
  at java.io.StringWriter.write(Ljava/lang/String;)V (Unknown Source)
  at java.io.StringWriter.append(Ljava/lang/CharSequence;)Ljava/io/StringWriter; (Unknown Source)
  at java.io.StringWriter.append(Ljava/lang/CharSequence;)Ljava/lang/Appendable; (Unknown Source)
  at org.openqa.selenium.json.JsonOutput.lambda$new$1(Ljava/lang/Appendable;Ljava/lang/String;)V (JsonOutput.java:111)
  at org.openqa.selenium.json.JsonOutput$$Lambda$175.accept(Ljava/lang/Object;)V (Unknown Source)
  at org.openqa.selenium.json.JsonOutput$JsonObject.write(Ljava/lang/String;)V (JsonOutput.java:413)
  at org.openqa.selenium.json.JsonOutput.append(Ljava/lang/String;)Lorg/openqa/selenium/json/JsonOutput; (JsonOutput.java:284)
  at org.openqa.selenium.json.JsonOutput.lambda$new$3(Ljava/lang/Object;Ljava/lang/Integer;)V (JsonOutput.java:124)
  at org.openqa.selenium.json.JsonOutput$$Lambda$179.consume(Ljava/lang/Object;Ljava/lang/Object;)V (Unknown Source)
  at org.openqa.selenium.json.JsonOutput.write(Ljava/lang/Object;I)Lorg/openqa/selenium/json/JsonOutput; (JsonOutput.java:264)
  at org.openqa.selenium.json.JsonOutput.lambda$null$23(Ljava/lang/Integer;Ljava/lang/Object;Ljava/lang/Object;)V (JsonOutput.java:177)
  at org.openqa.selenium.json.JsonOutput$$Lambda$218.accept(Ljava/lang/Object;Ljava/lang/Object;)V (Unknown Source)
  at com.google.common.collect.ImmutableSortedMap.forEach(Ljava/util/function/BiConsumer;)V (ImmutableSortedMap.java:588)
  at org.openqa.selenium.json.JsonOutput.lambda$new$24(Ljava/lang/Object;Ljava/lang/Integer;)V (JsonOutput.java:176)
  at org.openqa.selenium.json.JsonOutput$$Lambda$210.consume(Ljava/lang/Object;Ljava/lang/Object;)V (Unknown Source)
  at org.openqa.selenium.json.JsonOutput.write(Ljava/lang/Object;I)Lorg/openqa/selenium/json/JsonOutput; (JsonOutput.java:264)
  at org.openqa.selenium.json.JsonOutput.lambda$null$23(Ljava/lang/Integer;Ljava/lang/Object;Ljava/lang/Object;)V (JsonOutput.java:177)
  at org.openqa.selenium.json.JsonOutput$$Lambda$218.accept(Ljava/lang/Object;Ljava/lang/Object;)V (Unknown Source)
  at java.util.TreeMap.forEach(Ljava/util/function/BiConsumer;)V (Unknown Source)
  at java.util.Collections$UnmodifiableMap.forEach(Ljava/util/function/BiConsumer;)V (Unknown Source)
  at org.openqa.selenium.json.JsonOutput.lambda$new$24(Ljava/lang/Object;Ljava/lang/Integer;)V (JsonOutput.java:176)
  at org.openqa.selenium.json.JsonOutput$$Lambda$210.consume(Ljava/lang/Object;Ljava/lang/Object;)V (Unknown Source)
  at org.openqa.selenium.json.JsonOutput.write(Ljava/lang/Object;I)Lorg/openqa/selenium/json/JsonOutput; (JsonOutput.java:264)
  at org.openqa.selenium.json.JsonOutput.lambda$null$23(Ljava/lang/Integer;Ljava/lang/Object;Ljava/lang/Object;)V (JsonOutput.java:177)
  at org.openqa.selenium.json.JsonOutput$$Lambda$218.accept(Ljava/lang/Object;Ljava/lang/Object;)V (Unknown Source)
  at com.google.common.collect.SingletonImmutableBiMap.forEach(Ljava/util/function/BiConsumer;)V (SingletonImmutableBiMap.java:65)
  at org.openqa.selenium.json.JsonOutput.lambda$new$24(Ljava/lang/Object;Ljava/lang/Integer;)V (JsonOutput.java:176)
  at org.openqa.selenium.json.JsonOutput$$Lambda$210.consume(Ljava/lang/Object;Ljava/lang/Object;)V (Unknown Source)
  at org.openqa.selenium.json.JsonOutput.write(Ljava/lang/Object;I)Lorg/openqa/selenium/json/JsonOutput; (JsonOutput.java:264)
  at org.openqa.selenium.json.JsonOutput.write(Ljava/lang/Object;)Lorg/openqa/selenium/json/JsonOutput; (JsonOutput.java:255)
  at org.openqa.selenium.json.Json.toJson(Ljava/lang/Object;)Ljava/lang/String; (Json.java:42)
  at org.openqa.selenium.remote.NewSessionPayload.create(Ljava/util/Map;)Lorg/openqa/selenium/remote/NewSessionPayload; (NewSessionPayload.java:100)
  at org.openqa.selenium.remote.NewSessionPayload.create(Lorg/openqa/selenium/Capabilities;)Lorg/openqa/selenium/remote/NewSessionPayload; (NewSessionPayload.java:94)
  at org.openqa.selenium.remote.ProtocolHandshake.createSession(Lorg/openqa/selenium/remote/http/HttpClient;Lorg/openqa/selenium/remote/Command;)Lorg/openqa/selenium/remote/ProtocolHandshake$Result; (ProtocolHandshake.java:68)
  at org.openqa.selenium.remote.HttpCommandExecutor.execute(Lorg/openqa/selenium/remote/Command;)Lorg/openqa/selenium/remote/Response; (HttpCommandExecutor.java:136)
  at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(Lorg/openqa/selenium/remote/Command;)Lorg/openqa/selenium/remote/Response; (DriverCommandExecutor.java:83)
  at org.openqa.selenium.remote.RemoteWebDriver.execute(Ljava/lang/String;Ljava/util/Map;)Lorg/openqa/selenium/remote/Response; (RemoteWebDriver.java:552)
  at org.openqa.selenium.remote.RemoteWebDriver.startSession(Lorg/openqa/selenium/Capabilities;)V (RemoteWebDriver.java:213)
  at org.openqa.selenium.remote.RemoteWebDriver.<init>(Lorg/openqa/selenium/remote/CommandExecutor;Lorg/openqa/selenium/Capabilities;)V (RemoteWebDriver.java:131)
  at org.openqa.selenium.firefox.FirefoxDriver.<init>(Lorg/openqa/selenium/firefox/FirefoxOptions;)V (FirefoxDriver.java:147)
  at net.serenitybdd.core.webdriver.driverproviders.FirefoxDriverProvider.lambda$newMarionetteDriver$0(Lorg/openqa/selenium/firefox/FirefoxOptions;Lnet/serenitybdd/core/webdriver/servicepools/DriverServicePool;Lorg/openqa/selenium/remote/DesiredCapabilities;)Lorg/openqa/selenium/WebDriver; (FirefoxDriverProvider.java:70)
  at net.serenitybdd.core.webdriver.driverproviders.FirefoxDriverProvider$$Lambda$153.newDriver(Lnet/serenitybdd/core/webdriver/servicepools/DriverServicePool;Lorg/openqa/selenium/remote/DesiredCapabilities;)Lorg/openqa/selenium/WebDriver; (Unknown Source)
  at net.serenitybdd.core.webdriver.driverproviders.ProvideNewDriver.withConfiguration(Lnet/thucydides/core/util/EnvironmentVariables;Lorg/openqa/selenium/remote/DesiredCapabilities;Lnet/serenitybdd/core/webdriver/servicepools/DriverServicePool;Lnet/serenitybdd/core/webdriver/driverproviders/InstantiateDriver;Lnet/serenitybdd/core/webdriver/driverproviders/InstantiateDriver;)Lorg/openqa/selenium/WebDriver; (ProvideNewDriver.java:40)
  at net.serenitybdd.core.webdriver.driverproviders.FirefoxDriverProvider.newMarionetteDriver(Lorg/openqa/selenium/remote/DesiredCapabilities;Lnet/thucydides/core/util/EnvironmentVariables;)Lorg/openqa/selenium/WebDriver; (FirefoxDriverProvider.java:66)
  at net.serenitybdd.core.webdriver.driverproviders.FirefoxDriverProvider.newInstance(Ljava/lang/String;Lnet/thucydides/core/util/EnvironmentVariables;)Lorg/openqa/selenium/WebDriver; (FirefoxDriverProvider.java:52)
  at net.thucydides.core.webdriver.WebDriverFactory.createWebDriver(Ljava/lang/Class;Ljava/lang/String;Lnet/thucydides/core/util/EnvironmentVariables;)Lorg/openqa/selenium/WebDriver; (WebDriverFactory.java:169)
  at net.thucydides.core.webdriver.WebDriverFactory.newWebdriverInstance(Ljava/lang/Class;Ljava/lang/String;Lnet/thucydides/core/util/EnvironmentVariables;)Lorg/openqa/selenium/WebDriver; (WebDriverFactory.java:150)
  at net.thucydides.core.webdriver.WebDriverFacade.newDriverInstance()Lorg/openqa/selenium/WebDriver; (WebDriverFacade.java:141)
  at net.thucydides.core.webdriver.WebDriverFacade.newProxyDriver()Lorg/openqa/selenium/WebDriver; (WebDriverFacade.java:132)
  at net.thucydides.core.webdriver.WebDriverFacade.getProxiedDriver()Lorg/openqa/selenium/WebDriver; (WebDriverFacade.java:102)
  at net.thucydides.core.webdriver.WebDriverFacade.manage()Lorg/openqa/selenium/WebDriver$Options; (WebDriverFacade.java:332)
  at es.indra.autotestes.automation_project.pages.efisco.LoginPage.navegarLoginEfisco(Ljava/lang/String;)V (LoginPage.java:47)
  at es.indra.autotestes.automation_project.pages.efisco.LoginPage.realizarLogin(Ljava/lang/String;Ljava/lang/String;)V (LoginPage.java:72)
  at es.indra.autotestes.automation_project.steps.efisco.common.CommonSteps.realizarLoginEfisco(Ljava/lang/String;)V (CommonSteps.java:22)
  at es.indra.autotestes.automation_project.steps.efisco.icms.IsencaoIcmsDiversosSteps$ByteBuddy$R9YJgPBv.realizarLoginEfisco$accessor$PjF9yMzU(Ljava/lang/String;)V (Unknown Source)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Unknown Source)
  at java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Unknown Source)
  at net.thucydides.core.steps.StepInterceptor.invokeMethod(Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; (StepInterceptor.java:471)
  at net.thucydides.core.steps.StepInterceptor.executeTestStepMethod(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/Object;)Ljava/lang/Object; (StepInterceptor.java:451)
  at net.thucydides.core.steps.StepInterceptor.runTestStep(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; (StepInterceptor.java:424)
  at net.thucydides.core.steps.StepInterceptor.runOrSkipMethod(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; (StepInterceptor.java:180)
  at net.thucydides.core.steps.StepInterceptor.testStepResult(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; (StepInterceptor.java:167)
  at net.thucydides.core.steps.StepInterceptor.intercept(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; (StepInterceptor.java:75)
  at es.indra.autotestes.automation_project.steps.efisco.icms.IsencaoIcmsDiversosSteps$ByteBuddy$R9YJgPBv.realizarLoginEfisco(Ljava/lang/String;)V (Unknown Source)
  at es.indra.autotestes.automation_project.steps.efisco.icms.IsencaoIcmsDiversosSteps.receberPedidoDeIsencaoDeIcms(Ljava/lang/String;Ljava/lang/String;)V (IsencaoIcmsDiversosSteps.java:11)
  at es.indra.autotestes.automation_project.steps.efisco.icms.IsencaoIcmsDiversosSteps$ByteBuddy$R9YJgPBv.receberPedidoDeIsencaoDeIcms$accessor$PjF9yMzU(Ljava/lang/String;Ljava/lang/String;)V (Unknown Source)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Unknown Source)
  at java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Unknown Source)
  at net.thucydides.core.steps.StepInterceptor.invokeMethod(Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; (StepInterceptor.java:471)
  at net.thucydides.core.steps.StepInterceptor.executeTestStepMethod(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/Object;)Ljava/lang/Object; (StepInterceptor.java:451)
  at net.thucydides.core.steps.StepInterceptor.runTestStep(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; (StepInterceptor.java:424)
  at net.thucydides.core.steps.StepInterceptor.runOrSkipMethod(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; (StepInterceptor.java:180)
  at net.thucydides.core.steps.StepInterceptor.testStepResult(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; (StepInterceptor.java:167)
  at net.thucydides.core.steps.StepInterceptor.intercept(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/reflect/Method;)Ljava/lang/Object; (StepInterceptor.java:75)
  at es.indra.autotestes.automation_project.steps.efisco.icms.IsencaoIcmsDiversosSteps$ByteBuddy$R9YJgPBv.receberPedidoDeIsencaoDeIcms(Ljava/lang/String;Ljava/lang/String;)V (Unknown Source)
  at es.indra.autotestes.automation_project.features.isencao_icms.IsencaoIcmsDiversosRunner.testeAReceberIsencaoDeIcmsDiversos()V (IsencaoIcmsDiversosRunner.java:32)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Unknown Source)
  at java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (Unknown Source)
  at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall()Ljava/lang/Object; (FrameworkMethod.java:50)
  at org.junit.internal.runners.model.ReflectiveCallable.run()Ljava/lang/Object; (ReflectiveCallable.java:12)
  at org.junit.runners.model.FrameworkMethod.invokeExplosively(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (FrameworkMethod.java:47)
  at org.junit.internal.runners.statements.InvokeMethod.evaluate()V (InvokeMethod.java:17)
  at net.serenitybdd.junit.runners.SerenityStatement.evaluate()V (SerenityStatement.java:33)
  at org.junit.runners.ParentRunner.runLeaf(Lorg/junit/runners/model/Statement;Lorg/junit/runner/Description;Lorg/junit/runner/notification/RunNotifier;)V (ParentRunner.java:325)
  at org.junit.runners.BlockJUnit4ClassRunner.runChild(Lorg/junit/runners/model/FrameworkMethod;Lorg/junit/runner/notification/RunNotifier;)V (BlockJUnit4ClassRunner.java:78)
  at net.serenitybdd.junit.runners.SerenityRunner.performRunChild(Lorg/junit/runners/model/FrameworkMethod;Lorg/junit/runner/notification/RunNotifier;)V (SerenityRunner.java:463)
  at net.serenitybdd.junit.runners.SerenityRunner.runChild(Lorg/junit/runners/model/FrameworkMethod;Lorg/junit/runner/notification/RunNotifier;)V (SerenityRunner.java:438)
  at net.serenitybdd.junit.runners.SerenityRunner.runChild(Ljava/lang/Object;Lorg/junit/runner/notification/RunNotifier;)V (SerenityRunner.java:45)
  at org.junit.runners.ParentRunner$3.run()V (ParentRunner.java:290)
  at org.junit.runners.ParentRunner$1.schedule(Ljava/lang/Runnable;)V (ParentRunner.java:71)
  at org.junit.runners.ParentRunner.runChildren(Lorg/junit/runner/notification/RunNotifier;)V (ParentRunner.java:288)
  at org.junit.runners.ParentRunner.access$000(Lorg/junit/runners/ParentRunner;Lorg/junit/runner/notification/RunNotifier;)V (ParentRunner.java:58)
  at org.junit.runners.ParentRunner$2.evaluate()V (ParentRunner.java:268)
  at org.junit.runners.ParentRunner.run(Lorg/junit/runner/notification/RunNotifier;)V (ParentRunner.java:363)
  at net.serenitybdd.junit.runners.SerenityRunner.run(Lorg/junit/runner/notification/RunNotifier;)V (SerenityRunner.java:242)
  at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(Lorg/eclipse/jdt/internal/junit/runner/TestExecution;)V (JUnit4TestReference.java:86)
  at org.eclipse.jdt.internal.junit.runner.TestExecution.run([Lorg/eclipse/jdt/internal/junit/runner/ITestReference;)V (TestExecution.java:38)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests([Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/junit/runner/TestExecution;)V (RemoteTestRunner.java:459)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(Lorg/eclipse/jdt/internal/junit/runner/TestExecution;)V (RemoteTestRunner.java:678)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run()V (RemoteTestRunner.java:382)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main([Ljava/lang/String;)V (RemoteTestRunner.java:192)

如果我不使用 firefox 配置文件,所有这些都可以避免,测试运行完美。但是,我确实需要该 Firefox 配置文件中包含的设置。谁能帮我这个?我快要死了。

最佳答案

只需创建一个没有扩展和插件的新配置文件即可解决问题。

关于java - 使用 Serenity BDD 进行自动化测试时出现堆内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59830847/

相关文章:

java - Executor服务公平性

c# - 在 Selenium C# 中选择单选按钮

html - 如何使用 HTML 标签之间的文本来访问元素 - Selenium WebDriver

mysql - 如何让MySQL使用更少的内存?

c# - 用于字符串连接的 StringBuilder 抛出 OutOfMemoryException

ios - 关于应用进入暂停状态后点击应用图标后应用状态的问题

java - 检查 PriorityQueue 中对象的字段

java - 按契约(Contract)库(界面)设计的想法?

java - 如何根据文件大小保持滚动日志文件?

python - 如何在视频结束后自动点击网页上的 "next"或 "previous"按钮?