Răsfoiți Sursa

fixed closeBrowser

Former-commit-id: 1bfa7333a692f1e05bb10d9c1cccc9753c33f188
Gildas 5 ani în urmă
părinte
comite
730e0c62eb

+ 2 - 2
cli/back-ends/jsdom.js

@@ -53,6 +53,8 @@ exports.getPageData = async options => {
 	}
 };
 
+exports.closeBrowser = () => { };
+
 async function getPageData(win, options) {
 	const doc = win.document;
 	const scripts = await require("./common/scripts.js").get(options);
@@ -88,8 +90,6 @@ async function getPageData(win, options) {
 	return pageData;
 }
 
-exports.closeBrowser = () => { };
-
 function getBrowserOptions(options) {
 	const jsdomOptions = {
 		url: options.url,

+ 12 - 11
cli/back-ends/webdriver-chromium.js

@@ -28,23 +28,24 @@ const path = require("path");
 const chrome = require("selenium-webdriver/chrome");
 const { Builder } = require("selenium-webdriver");
 
-let driver;
-
 exports.initialize = async () => { };
 
 exports.getPageData = async options => {
-	const builder = new Builder();
-	builder.setChromeOptions(getBrowserOptions(options));
-	driver = builder.forBrowser("chrome").build();
-	return await getPageData(driver, options);
-};
-
-exports.closeBrowser = () => {
-	if (driver) {
-		return driver.quit();
+	let driver;
+	try {
+		const builder = new Builder();
+		builder.setChromeOptions(getBrowserOptions(options));
+		driver = builder.forBrowser("chrome").build();
+		return await getPageData(driver, options);
+	} finally {
+		if (driver) {
+			driver.quit();
+		}
 	}
 };
 
+exports.closeBrowser = () => { };
+
 function getBrowserOptions(options) {
 	const chromeOptions = new chrome.Options();
 	const optionHeadless = (options.browserHeadless === undefined || options.browserHeadless) && !options.browserDebug;

+ 12 - 11
cli/back-ends/webdriver-gecko.js

@@ -28,23 +28,24 @@ const path = require("path");
 const firefox = require("selenium-webdriver/firefox");
 const { Builder, By, Key } = require("selenium-webdriver");
 
-let driver;
-
 exports.initialize = async () => { };
 
 exports.getPageData = async options => {
-	const builder = new Builder().withCapabilities({ "pageLoadStrategy": "none" });
-	builder.setFirefoxOptions(getBrowserOptions(options));
-	driver = builder.forBrowser("firefox").build();
-	return await getPageData(driver, options);
-};
-
-exports.closeBrowser = () => {
-	if (driver) {
-		return driver.quit();
+	let driver;
+	try {
+		const builder = new Builder().withCapabilities({ "pageLoadStrategy": "none" });
+		builder.setFirefoxOptions(getBrowserOptions(options));
+		driver = builder.forBrowser("firefox").build();
+		return await getPageData(driver, options);
+	} finally {
+		if (driver) {
+			driver.quit();
+		}
 	}
 };
 
+exports.closeBrowser = () => { };
+
 function getBrowserOptions(options) {
 	const firefoxOptions = new firefox.Options();
 	if ((options.browserHeadless === undefined || options.browserHeadless) && !options.browserDebug) {