思路:频繁开关phantomJS进程比较耗费资源,所以需要维护一个线程池控制访问以减少内存消耗
1. 自定义操作CustomAction接口
public interface CustomAction {
String action(WebDriver webDriver);
}
2. WebDriverPool池
public class WebDriverPool {
// 线程池大小
private static final int MAX_COUNT = 15;
// 线程数量控制
private Semaphore semaphore = new Semaphore(MAX_COUNT);
// webDriver池
private WebDriver[] webDrivers = new WebDriver[MAX_COUNT];
private boolean[] driverFlag = new boolean[MAX_COUNT];
private Lock lockDrivers = new ReentrantLock();
//phantomjs路径
private final String JS_BIN = "f:/phantomjs";
public WebDriverPool() {
System.setProperty("phantomjs.binary.path", JS_BIN);
for (int i = 0; i < MAX_COUNT; i++) {
driverFlag[i] = true;
}
//