Dies ist die Browser-Initiierungsmethode im Basistest
Code: Select all
public void initBrowser() {
playwright = Playwright.create();
String headless = config.headLess;
boolean isHeadless = Boolean.parseBoolean(headless);
browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(isHeadless));
System.out.println(browser);
context = browser.newContext();
System.out.println(context);
page = context.newPage();
}
Code: Select all
public void closeBrowser() {
context.close();
browser.close();
playwright.close();
}
öffentliche Klasse Hooks {
BasePage basePage = new BasePage();
Code: Select all
@Before
public void setup() {
basePage.initBrowser();
}
@After
public void tearDown() {
basePage.closeBrowser();
}
Wenn ich den Code ausführe, wird dieser Fehler angezeigt. Der Browser wird geöffnet, aber sofort geschlossen, ohne dass weitere Schritte ausgeführt werden müssen. Framework ist BDD (Cucumber) mit Playwright und Java. Dieses Problem tritt nur auf, wenn der Code mit Chromium auf einem Mac-Computer ausgeführt wird (wir haben diesen Code unter Windows ausgeführt und alles sieht gut aus). Dieser Code funktionierte auch gut auf Firefox und Webkit (beide Mac/Windows).
Code: Select all
com.microsoft.playwright.impl.BrowserImpl@28276e50
com.microsoft.playwright.impl.BrowserContextImpl@36b0fcd5
com.microsoft.playwright.PlaywrightException: Error {
message='Target page, context or browser has been closed
name='TargetClosedError
stack='TargetClosedError:Target page, context or browser has been closed
Error
at captureRawStack (/private/var/folders/y1/hjtdt91x4r55hpcdsg5v_2vh0000gp/T/playwright-java-15087204804003979156/package/lib/utils/stackTrace.js:50:17)
at LongStandingScope._race (/private/var/folders/y1/hjtdt91x4r55hpcdsg5v_2vh0000gp/T/playwright-java-15087204804003979156/package/lib/utils/manualPromise.js:91:52)
at LongStandingScope.race (/private/var/folders/y1/hjtdt91x4r55hpcdsg5v_2vh0000gp/T/playwright-java-15087204804003979156/package/lib/utils/manualPromise.js:84:17)
at BrowserContextDispatcher._handleCommand (/private/var/folders/y1/hjtdt91x4r55hpcdsg5v_2vh0000gp/T/playwright-java-15087204804003979156/package/lib/server/dispatchers/dispatcher.js:96:36)
at DispatcherConnection.dispatch (/private/var/folders/y1/hjtdt91x4r55hpcdsg5v_2vh0000gp/T/playwright-java-15087204804003979156/package/lib/server/dispatchers/dispatcher.js:362:39)
}
at com.microsoft.playwright.impl.WaitableResult.get(WaitableResult.java:54)
at com.microsoft.playwright.impl.ChannelOwner.runUntil(ChannelOwner.java:120)
at com.microsoft.playwright.impl.Connection.sendMessage(Connection.java:129)
at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:106)
at com.microsoft.playwright.impl.ChannelOwner.sendMessage(ChannelOwner.java:101)
at com.microsoft.playwright.impl.BrowserContextImpl.newPageImpl(BrowserContextImpl.java:419)
at com.microsoft.playwright.impl.BrowserContextImpl.lambda$newPage$13(BrowserContextImpl.java:412)
at com.microsoft.playwright.impl.LoggingSupport.withLogging(LoggingSupport.java:47)
at com.microsoft.playwright.impl.ChannelOwner.withLogging(ChannelOwner.java:89)
at com.microsoft.playwright.impl.BrowserContextImpl.newPage(BrowserContextImpl.java:412)
at com.microsoft.playwright.impl.BrowserContextImpl.newPage(BrowserContextImpl.java:44)
at pages.BasePage.initBrowser(BasePage.java:24)
at hooks.Hooks.setup(Hooks.java:12)
Caused by: com.microsoft.playwright.impl.TargetClosedError: Error {
message='Target page, context or browser has been closed
name='TargetClosedError
stack='TargetClosedError:Target page, context or browser has been closed
Error