diff --git a/pom.xml b/pom.xml index 13c1223219796ce92e2bcfb6abcfee5b63c27db4..dca10a9edf91dacf2842035d5694981235eb4cd3 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.heiliu.selenium selenium-client - 1.0-SNAPSHOT + 1.0.0 1.8 diff --git a/src/main/java/cn/heiliu/selenium/SeleniumManager.java b/src/main/java/cn/heiliu/selenium/SeleniumManager.java index b34b56eba238a714c8b39a394468a03fb16f7f06..8e63438b34700b19dd062af625d25062bac5e1bc 100644 --- a/src/main/java/cn/heiliu/selenium/SeleniumManager.java +++ b/src/main/java/cn/heiliu/selenium/SeleniumManager.java @@ -5,7 +5,6 @@ import cn.heiliu.selenium.service.ISeleniumPoolService; import cn.heiliu.selenium.service.IWebDriverCreateService; import cn.heiliu.selenium.service.IWebDriverService; import cn.heiliu.selenium.service.impl.FirefoxWebDriverCreateServiceImpl; -import cn.heiliu.selenium.service.impl.FirefoxWebDriverServiceImpl; import cn.heiliu.selenium.service.impl.SeleniumPoolServiceImpl; /** diff --git a/src/main/java/cn/heiliu/selenium/config/SetupConfig.java b/src/main/java/cn/heiliu/selenium/config/SetupConfig.java index c7fa2895968fc35efe1c0b4922d56a6c156b7db6..e4c2c719d0a36b7c0b5ab0156964c55db84fd99a 100644 --- a/src/main/java/cn/heiliu/selenium/config/SetupConfig.java +++ b/src/main/java/cn/heiliu/selenium/config/SetupConfig.java @@ -28,12 +28,6 @@ public class SetupConfig { @Builder.Default private int maxFailedNum = 10; - /** - * 标志 - */ - @Builder.Default - private String flag = UUID.randomUUID().toString(); - /** * 浏览器执行路径 */ @@ -66,10 +60,11 @@ public class SetupConfig { /** * 获取下载目录 + * @param uid * @return */ - public String getDownDir() { - return StrUtil.hasEmpty(downDir) ? flag : downDir + File.separator + flag; + public String getDownDir(String uid) { + return StrUtil.hasEmpty(downDir) ? uid : StrUtil.removeSuffix(downDir, File.separator) + File.separator + uid; } } diff --git a/src/main/java/cn/heiliu/selenium/service/IWebDriverService.java b/src/main/java/cn/heiliu/selenium/service/IWebDriverService.java index 77d48745d0c7c847839b2dc78c02a41116454a21..848b6f4c7a5f4a40ed73b261712fa5f584818364 100644 --- a/src/main/java/cn/heiliu/selenium/service/IWebDriverService.java +++ b/src/main/java/cn/heiliu/selenium/service/IWebDriverService.java @@ -5,6 +5,8 @@ import cn.heiliu.selenium.domain.WebDriverStatus; import cn.heiliu.selenium.exception.UnsupportedMethodException; import org.openqa.selenium.WebDriver; +import java.nio.file.Path; + /** * @author wangyelou * @date 2021/6/14 @@ -38,6 +40,18 @@ public interface IWebDriverService extends WebDriver { */ public WebDriverStatus getStatus(); + /** + * 加载插件 + * @param ext + */ + public void installExt(Path ext); + + /** + * 重置窗口 + * @return + */ + public String resetWindow(); + /** * 禁止使用该方法 * @return diff --git a/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverCreateServiceImpl.java b/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverCreateServiceImpl.java index 2477d462f5b0a6d4d70e7d3788049706efe1d252..0e9578b41a093fc4ea4f12183edfbf0bd7700f72 100644 --- a/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverCreateServiceImpl.java +++ b/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverCreateServiceImpl.java @@ -3,6 +3,7 @@ package cn.heiliu.selenium.service.impl; import cn.heiliu.selenium.config.SetupConfig; import cn.heiliu.selenium.service.IWebDriverCreateService; import cn.heiliu.selenium.service.IWebDriverService; +import cn.hutool.core.util.IdUtil; import lombok.extern.slf4j.Slf4j; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxOptions; @@ -17,16 +18,20 @@ import java.io.File; public class FirefoxWebDriverCreateServiceImpl implements IWebDriverCreateService { private static final String GECKO_PATH = "webdriver.gecko.driver"; + private String uid; @Override public IWebDriverService createWebDriver(SetupConfig setupConfig) { + // 生产唯一uid + uid = IdUtil.fastSimpleUUID(); + FirefoxOptions surrogate = getDefaultOption(setupConfig); // 启动 - FirefoxWebDriverServiceImpl webDriver = new FirefoxWebDriverServiceImpl(surrogate, setupConfig); + IWebDriverService webDriver = new FirefoxWebDriverServiceImpl(surrogate, setupConfig, uid); // 代理认证 - webDriver.installExtension(new File(setupConfig.getProxyAuthExt()).toPath()); + webDriver.installExt(new File(setupConfig.getProxyAuthExt()).toPath()); log.info("create firefox[{}]", webDriver.getFlag()); return webDriver; @@ -74,7 +79,7 @@ public class FirefoxWebDriverCreateServiceImpl implements IWebDriverCreateServic // 自动下载文件类型 surrogate.addPreference("browser.download.folderList", 2); - surrogate.addPreference("browser.download.dir", setupConfig.getDownDir()); + surrogate.addPreference("browser.download.dir", setupConfig.getDownDir(uid)); surrogate.addPreference("browser.download.useDownloadDir", true); surrogate.addPreference("browser.download.manager.showWhenStarting", false); surrogate.addPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream, application/x-001, text/h323, drawing/907, audio/x-mei-aac, audio/aiff, text/asa, text/asp, audio/basic, application/vnd.adobe.workflow, application/x-bmp, application/x-c4t, application/x-cals, application/x-netcdf, application/x-cel, application/x-g4, application/x-cit, application/x-cmx, application/pkix-crl, application/x-csi, application/x-cut, application/x-dbm, application/x-x509-ca-cert, application/x-dib, application/msword, application/x-drw, Model/vnd.dwf, application/x-dwg, application/x-dxf, application/x-emf, application/x-ps, application/x-ebx, image/fax, application/fractals, application/x-frm, application/x-gbr, image/gif, application/x-gp4, application/x-hmr, application/x-hpl, application/x-hrf, text/x-component, image/x-icon, application/x-iff, application/x-igs, application/x-img, application/x-internet-signup, java/*, image/jpeg, application/x-jpg, application/x-laplayer-reg, audio/x-liquid-secure, audio/x-la-lms, application/x-ltr, video/x-mpeg, video/mpeg4, application/x-troff-man, application/msaccess, application/x-shockwave-flash, message/rfc822, audio/mid, application/x-mil, audio/x-musicnet-download, application/x-javascript, audio/mp1, video/mpeg, application/vnd.ms-project, video/mpg, audio/rn-mpeg, image/pnetvue, application/x-out, application/x-pkcs12, application/pkcs7-mime, application/x-pkcs7-certreqresp, application/x-pc5, application/x-pcl, application/pdf, application/vnd.adobe.pdx, application/x-pgl, application/vnd.ms-pki.pko, application/x-plt, application/x-png, application/vnd.ms-powerpoint, application/x-ppt, application/pics-rules, application/x-prt, application/postscript, audio/vnd.rn-realaudio, application/x-ras, application/x-red, application/vnd.rn-realsystem-rjs, application/x-rlc, application/vnd.rn-realmedia, audio/x-pn-realaudio, application/vnd.rn-realmedia-secure, application/vnd.rn-realsystem-rmx, image/vnd.rn-realpix, application/vnd.rn-rsml, video/vnd.rn-realvideo, application/x-sat, application/x-sdw, application/x-slb, drawing/x-slk, application/smil, text/plain, application/futuresplash, application/streamingmedia, application/vnd.ms-pki.stl, application/x-sty, application/x-tg4, image/tiff, drawing/x-top, application/x-icq, text/x-vcard, application/vnd.visio, application/x-vpeg005, application/x-vsd, audio/wav, application/x-wb1, application/x-wb3, application/x-wk4, application/x-wks, audio/x-ms-wma, application/x-wmf, video/x-ms-wmv, application/x-ms-wmz, application/x-wpd, application/vnd.ms-wpl, application/x-wr1, application/x-wrk, application/x-ws, application/vnd.adobe.xdp, application/vnd.adobe.xfd, application/x-xls, application/x-xwd, application/vnd.symbian.install, application/x-x_t, application/vnd.android.package-archive, application/x-301, application/x-906, application/x-a11, application/x-anv, video/x-ms-asf, video/avi, application/x-bot, application/x-c90, application/vnd.ms-pki.seccat, application/x-cdr, application/x-cgm, application/x-cmp, application/x-cot, application/x-dbf, application/x-dbx, application/x-dcx, application/x-dgn, application/x-msdownload, application/x-dwf, application/x-dxb, application/vnd.adobe.edn, application/x-epi, application/vnd.fdf, application/x-, application/x-gl2, application/x-hgl, application/x-hpgl, application/mac-binhex40, application/hta, text/webviewhtml, application/x-icb, application/x-ico, application/x-iphone, video/x-ivf, application/x-jpe, audio/x-liquid-file, application/x-latex, application/x-lbm, audio/mpegurl, application/x-mac, application/x-mdb, application/x-mi, audio/x-musicnet-stream, video/x-sgi-movie, audio/mp2, audio/mp3, video/x-mpg, application/x-mmxp, application/x-nrf, text/x-ms-odc, application/pkcs10, application/x-pkcs7-certificates, application/pkcs7-signature, application/x-pci, application/x-pcx, application/x-pic, application/x-perl, audio/scpls, image/png, application/x-ppm, application/x-pr, application/x-prn, application/x-ptn, text/vnd.rn-realtext3d, application/rat-file, application/vnd.rn-recording, application/x-rgb, application/vnd.rn-realsystem-rjt, application/x-rle, application/vnd.adobe.rmf, application/vnd.rn-realsystem-rmj, application/vnd.rn-rn_music_package, application/vnd.rn-realmedia-vbr, application/vnd.rn-realplayer, audio/x-pn-realaudio-plugin, text/vnd.rn-realtext, application/x-rtf, application/x-sam, application/sdp, application/x-stuffit, application/x-sld, application/x-smk, application/vnd.ms-pki.certstore, application/x-tdf, application/x-tga, application/x-tif, application/x-bittorrent, text/iuls, application/x-vda, application/x-vst, audio/x-ms-wax, application/x-wb2, image/vnd.wap.wbmp, application/x-wk3, application/x-wkq, video/x-ms-wm, application/x-ms-wmd, text/vnd.wap.wml, video/x-ms-wmx, application/x-wp6, application/x-wpg, application/x-wq1, application/x-wri, text/scriptlet, video/x-ms-wvx, application/vnd.adobe.xfdf, application/vnd.ms-excel, application/x-xlw, application/x-x_b, application/vnd.iphone, application/x-silverlight-app, application/msexcel, application/msword, application/zip, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/x-zip-compressed"); diff --git a/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverGetServiceImpl.java b/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverGetServiceImpl.java index b6888c4fcf9030f6467aa27c64028aecf6718277..8c472da2c7ed287281fd5f7b5fa0db0b7d1c05ab 100644 --- a/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverGetServiceImpl.java +++ b/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverGetServiceImpl.java @@ -12,6 +12,7 @@ import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.openqa.selenium.By; import org.openqa.selenium.NoSuchElementException; +import org.openqa.selenium.NoSuchWindowException; import java.io.File; @@ -46,31 +47,24 @@ public class FirefoxWebDriverGetServiceImpl implements IWebDriverGetService { @Override public void get() { + // 重置窗口 + String finalCurrentWindow = webDriver.resetWindow(); + + // 删除所有下载文件 + FileUtil.clean(downDir); + // 设置代理 proxySet(); // 清空当前标签页内容 webDriver.get(SpecialUrl.FIREFOX_BLANK); - String currentWindow = webDriver.getWindowHandle(); - - // 关闭除当前标签的所有标签 - webDriver.getWindowHandles().forEach(window -> { - if (!window.equals(currentWindow)) { - webDriver.switchTo().window(window); - webDriver.close(); - } - }); - - // 删除所有下载文件 - FileUtil.clean(downDir); // 执行js, 跳转页面 - webDriver.switchTo().window(currentWindow); webDriver.executeScript("window.open(\"" + formatUrl(url) + "\")"); // 切换标签 webDriver.getWindowHandles().forEach(window -> { - if (!window.equals(currentWindow)) { + if (!window.equals(finalCurrentWindow)) { webDriver.switchTo().window(window); } }); @@ -84,11 +78,10 @@ public class FirefoxWebDriverGetServiceImpl implements IWebDriverGetService { */ private void dealResult() { long startCheckTime = System.currentTimeMillis(); - boolean htmlFlag = false; boolean downFlag = false; - while (!htmlFlag && !downFlag && System.currentTimeMillis() - startCheckTime < timeout) { + while (System.currentTimeMillis() - startCheckTime < timeout) { // 下载文件检查 - if (FileUtil.exist(downDir)) { + if (FileUtil.exist(downDir) && FileUtil.ls(downDir).length > 0) { log.info("file downloading..."); // 检测到文件下载,则等待下载完成 while (FileUtil.ls(downDir).length > 1 && System.currentTimeMillis() - startCheckTime < timeout) { @@ -101,6 +94,7 @@ public class FirefoxWebDriverGetServiceImpl implements IWebDriverGetService { log.info("get down file: {}", downFile.getName()); } downFlag = true; + break; } @@ -108,7 +102,7 @@ public class FirefoxWebDriverGetServiceImpl implements IWebDriverGetService { if (!StrUtil.hasEmpty(waitXpath)) { if (!webDriver.findElements(By.xpath(waitXpath)).isEmpty()) { log.info("find element with xpath: {}", waitXpath); - htmlFlag = true; + break; } } else { // 如果没有设置wait xpath 则检查完是否有下载文件后就退出 diff --git a/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverServiceImpl.java b/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverServiceImpl.java index 92be8da9f29e78d6df98eddcaa3e5b4a9f8baa1f..48249ab08400ad841e77e4129f1a91c16e6b14f5 100644 --- a/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverServiceImpl.java +++ b/src/main/java/cn/heiliu/selenium/service/impl/FirefoxWebDriverServiceImpl.java @@ -6,11 +6,16 @@ import cn.heiliu.selenium.domain.WebDriverStatus; import cn.heiliu.selenium.exception.DownFileTimeOutException; import cn.heiliu.selenium.service.IWebDriverGetService; import cn.heiliu.selenium.service.IWebDriverService; +import cn.hutool.system.OsInfo; +import cn.hutool.system.SystemUtil; import com.google.common.collect.ImmutableMap; +import org.openqa.selenium.NoSuchWindowException; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxOptions; +import org.openqa.selenium.remote.Response; import java.nio.file.Path; +import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; /** @@ -30,19 +35,36 @@ public class FirefoxWebDriverServiceImpl extends FirefoxDriver implements IWebDr private SetupConfig setupConfig; /** - * 浏览器标志 + * 浏览器名称 */ - private String flag; + private String name; + + /** + * 浏览器id + */ + private String uid; + + /** + * 当前浏览器的下载目录 + */ + private String ownDownDir; /** * 状态记录 */ private WebDriverStatus status; - public FirefoxWebDriverServiceImpl(FirefoxOptions firefoxOptions, SetupConfig setupConfig) { + /** + * 当前系统信息 + */ + private OsInfo osInfo = SystemUtil.getOsInfo(); + + public FirefoxWebDriverServiceImpl(FirefoxOptions firefoxOptions, SetupConfig setupConfig, String uid) { super(firefoxOptions); this.setupConfig = setupConfig; - this.flag = "firefox-" + num.getAndIncrement(); + this.uid = uid; + this.name = "firefox-" + uid + "-" + num.getAndIncrement(); + this.ownDownDir = setupConfig.getDownDir(uid); num.compareAndSet(10000, 1); status = new WebDriverStatus(); } @@ -51,24 +73,23 @@ public class FirefoxWebDriverServiceImpl extends FirefoxDriver implements IWebDr * 安装临时插件 * temporary 是否是临时插件 * @param path 插件位置,绝对路径 - * @return */ @Override - public String installExtension(Path path) { - return (String) execute(INSTALL_EXTENSION, + public void installExt(Path path) { + execute(INSTALL_EXTENSION, ImmutableMap.of("path", path.toAbsolutePath().toString(), "temporary", true)).getValue(); } @Override public String getFlag() { - return flag; + return name; } @Override public IWebDriverGetService fetch(String url, SeleniumProxy proxy, String waitXpath, long timeout) { try { - FirefoxWebDriverGetServiceImpl webGet = new FirefoxWebDriverGetServiceImpl(this, setupConfig.getDownDir(), url, timeout); + FirefoxWebDriverGetServiceImpl webGet = new FirefoxWebDriverGetServiceImpl(this, ownDownDir, url, timeout); webGet.setWaitXpath(waitXpath); if (proxy != null && !proxy.isEmpty()) { webGet.setProxy(proxy); @@ -109,14 +130,69 @@ public class FirefoxWebDriverServiceImpl extends FirefoxDriver implements IWebDr } } + /** + * 每次操作浏览器都检测下窗口是否正确 + * @param driverCommand + * @param parameters + * @return + */ + @Override + protected Response execute(String driverCommand, Map parameters) { + while (true) { + try { + return super.execute(driverCommand, parameters); + } catch (NoSuchWindowException e) { + String s = getWindowHandles().toArray()[0].toString(); + switchTo().window(s); + System.out.println(s); + parameters = ImmutableMap.of("handle", s); + } + } + } + @Override public WebDriverStatus getStatus() { return status; } + + @Override + public String resetWindow() { + String currentWindow; + try { + currentWindow = getWindowHandle(); + } catch (NoSuchWindowException e) { + currentWindow = getWindowHandles().toArray()[0].toString(); + } + + // 关闭除当前标签的所有标签 + String finalCurrentWindow = currentWindow; + getWindowHandles().forEach(window -> { + if (!window.equals(finalCurrentWindow)) { + switchTo().window(window); + close(); + } + }); + switchTo().window(finalCurrentWindow); + return currentWindow; + } + @Override public void quit() { status.invalid(); - super.quit(); + // 强制关闭 + try { + long pid = (long) getCapabilities().getCapability("moz:processID"); + if (osInfo.isWindows()) { + Runtime.getRuntime().exec("taskkill /pid " + pid + " -t -f"); + } else if (osInfo.isLinux()) { + Runtime.getRuntime().exec("kill -9 " + pid); + } + super.quit(); + } catch (Exception e) { + // 不输出 + } } + + } diff --git a/src/main/java/cn/heiliu/selenium/service/impl/SeleniumPoolServiceImpl.java b/src/main/java/cn/heiliu/selenium/service/impl/SeleniumPoolServiceImpl.java index 788306d12c0ce48bb63143666c6bfa4b3c7e09bb..52939bb94d277a5f78fa247b93247303fe1f9132 100644 --- a/src/main/java/cn/heiliu/selenium/service/impl/SeleniumPoolServiceImpl.java +++ b/src/main/java/cn/heiliu/selenium/service/impl/SeleniumPoolServiceImpl.java @@ -6,14 +6,13 @@ import cn.heiliu.selenium.exception.NoWebDriverException; import cn.heiliu.selenium.service.ISeleniumPoolService; import cn.heiliu.selenium.service.IWebDriverCreateService; import cn.heiliu.selenium.service.IWebDriverService; +import cn.hutool.core.collection.ConcurrentHashSet; import cn.hutool.core.thread.ThreadFactoryBuilder; import cn.hutool.core.thread.ThreadUtil; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.openqa.selenium.TimeoutException; -import java.util.HashSet; -import java.util.LinkedHashSet; import java.util.Random; import java.util.concurrent.SynchronousQueue; import java.util.concurrent.ThreadPoolExecutor; @@ -33,7 +32,7 @@ public class SeleniumPoolServiceImpl implements ISeleniumPoolService, Runnable { private IWebDriverCreateService webDriverCreateService; private SetupConfig setupConfig; - private HashSet pool; + private ConcurrentHashSet pool; /** * 有效webdriver个数 @@ -44,30 +43,31 @@ public class SeleniumPoolServiceImpl implements ISeleniumPoolService, Runnable { public SeleniumPoolServiceImpl(IWebDriverCreateService webDriverCreateService, SetupConfig setupConfig) { this.webDriverCreateService = webDriverCreateService; this.setupConfig = setupConfig; - pool = new LinkedHashSet<>(setupConfig.getPoolSize()); + pool = new ConcurrentHashSet<>(setupConfig.getPoolSize()); // 后台检测线程 ThreadPoolExecutor monitor = new ThreadPoolExecutor(1, 1, 0, TimeUnit.SECONDS, new SynchronousQueue<>(), - ThreadFactoryBuilder.create().setNamePrefix("selenium-pool-monitor").build()); + ThreadFactoryBuilder.create().setNamePrefix("selenium-pool-monitor-").build()); monitor.execute(this); } @Override public synchronized IWebDriverService getWebDriver(long timeout) throws TimeoutException { - if (validNum <= 0 && pool.size() < setupConfig.getPoolSize()) { - pool.add(webDriverCreateService.createWebDriver(setupConfig)); - validNum ++; - } - // 阻塞等待 long startTime = System.currentTimeMillis(); while (validNum <= 0) { if (System.currentTimeMillis() - startTime >= timeout) { throw new TimeoutException(); } - try { - this.wait(timeout); - } catch (InterruptedException e) { - throw new TimeoutException(); + if (pool.size() < setupConfig.getPoolSize()) { + //新建浏览器 + pool.add(webDriverCreateService.createWebDriver(setupConfig)); + validNum ++; + } else { + try { + this.wait(timeout); + } catch (InterruptedException e) { + throw new TimeoutException(); + } } } @@ -89,12 +89,14 @@ public class SeleniumPoolServiceImpl implements ISeleniumPoolService, Runnable { if (!status.isValid() || status.getFailedNum() > setupConfig.getMaxFailedNum()) { log.info("{} invalid, remove", webDriver.getFlag()); status.invalid(); + validNum --; pool.remove(webDriver); + webDriver.quit(); } else { status.release(); validNum ++; - this.notifyAll(); } + this.notifyAll(); } @Override @@ -105,8 +107,10 @@ public class SeleniumPoolServiceImpl implements ISeleniumPoolService, Runnable { WebDriverStatus status = webDriver.getStatus(); if (!status.isValid()) { - log.warn("{} checked invalid, go to remove", webDriver.getFlag()); - release(webDriver); + synchronized (this) { + log.warn("{} checked invalid, go to remove", webDriver.getFlag()); + release(webDriver); + } } if (status.getStartUseTime() - System.currentTimeMillis() > 300000) { @@ -115,7 +119,12 @@ public class SeleniumPoolServiceImpl implements ISeleniumPoolService, Runnable { // 运行一段时间后关闭, 防止浏览器内存问题, 30分钟上下5分钟,防止同时关闭/启动 if (System.currentTimeMillis() - status.getStartUpTime() > random.nextInt(300000) + 1800000) { - webDriver.getStatus().invalid(); + synchronized (this) { + if (!webDriver.getStatus().isUsed()) { + webDriver.getStatus().invalid(); + release(webDriver); + } + } } } diff --git a/target/classes/logback.xml b/target/classes/logback.xml deleted file mode 100644 index 490e425dcd5c7bd0a76bcc5bd3816c982db27ca3..0000000000000000000000000000000000000000 --- a/target/classes/logback.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - %d %p (%file:%line\) - [%thread] [%X{key}] %m%n - UTF-8 - - - - - ${LOG_HOME}/server.log - - ${LOG_HOME}/server.%d.log - 7 - - - {"logtime": "%d", "level": "%level","thread": "%thread","class_name": "%class","line_number": "%line","message": "%message"}%n - UTF-8 - - - - - - - - - \ No newline at end of file diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties deleted file mode 100644 index d051b0f202df6d03429c81a5b47a498fd08c39dd..0000000000000000000000000000000000000000 --- a/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Wed Jun 16 01:00:05 CST 2021 -groupId=cn.heiliu.selenium -artifactId=selenium-client -version=1.0-SNAPSHOT diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index 8e1c30ed5364b9bb8532ce7ae7455e044895076c..0000000000000000000000000000000000000000 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1,18 +0,0 @@ -cn\heiliu\selenium\exception\DownFileTimeOutException.class -cn\heiliu\selenium\service\impl\SeleniumPoolServiceImpl.class -cn\heiliu\selenium\service\ISeleniumPoolService.class -cn\heiliu\selenium\domain\WebDriverStatus.class -cn\heiliu\selenium\exception\UnsupportedMethodException.class -cn\heiliu\selenium\domain\SeleniumProxy.class -cn\heiliu\selenium\service\impl\FirefoxWebDriverCreateServiceImpl.class -cn\heiliu\selenium\service\IWebDriverCreateService.class -cn\heiliu\selenium\service\impl\FirefoxWebDriverServiceImpl.class -cn\heiliu\selenium\domain\SpecialUrl.class -cn\heiliu\selenium\config\SetupConfig$SetupConfigBuilder.class -cn\heiliu\selenium\exception\NoWebDriverException.class -cn\heiliu\selenium\config\SetupConfig.class -cn\heiliu\selenium\service\impl\FirefoxWebDriverGetServiceImpl.class -cn\heiliu\selenium\service\IWebDriverGetService.class -cn\heiliu\selenium\service\IWebDriverService.class -cn\heiliu\selenium\SeleniumManager.class -cn\heiliu\selenium\domain\WebDriverGetResult.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 514a4485d59876be4b758fe5765d9fd2328b5f72..0000000000000000000000000000000000000000 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,17 +0,0 @@ -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\exception\NoWebDriverException.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\config\SetupConfig.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\SeleniumManager.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\domain\SeleniumProxy.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\service\impl\FirefoxWebDriverServiceImpl.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\exception\DownFileTimeOutException.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\domain\WebDriverGetResult.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\service\IWebDriverService.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\domain\SpecialUrl.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\service\IWebDriverGetService.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\service\impl\FirefoxWebDriverGetServiceImpl.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\service\impl\SeleniumPoolServiceImpl.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\exception\UnsupportedMethodException.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\service\ISeleniumPoolService.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\domain\WebDriverStatus.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\service\impl\FirefoxWebDriverCreateServiceImpl.java -D:\work\SeleniumClient\src\main\java\cn\heiliu\selenium\service\IWebDriverCreateService.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst deleted file mode 100644 index d1fde3c151456b454e6b9e2a53bc6a2b4e016f05..0000000000000000000000000000000000000000 --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +++ /dev/null @@ -1,3 +0,0 @@ -cn\heiliu\selenium\GetSingleWebDriver.class -cn\heiliu\selenium\GetWebDriverFromPool$1.class -cn\heiliu\selenium\GetWebDriverFromPool.class diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst deleted file mode 100644 index 1363f9a75d67a38ede3fff931a325d30139c6be3..0000000000000000000000000000000000000000 --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ /dev/null @@ -1,2 +0,0 @@ -D:\work\SeleniumClient\src\test\java\cn\heiliu\selenium\GetWebDriverFromPool.java -D:\work\SeleniumClient\src\test\java\cn\heiliu\selenium\GetSingleWebDriver.java