SeleniumConfig.java 1.44 KB
package com.canrd.webmagic.config;

import com.canrd.webmagic.processor.driver.BrowserDriver;
import com.canrd.webmagic.processor.driver.MyChromeDriver;
import com.canrd.webmagic.processor.driver.MyFirefoxDriver;
import lombok.Data;
import org.openqa.selenium.WebDriver;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;

import java.util.*;


/**
 * @author: xms
 * @description: TODO
 * @date: 2024/4/26 14:37
 * @version: 1.0
 */
@Configuration
@Data
public class SeleniumConfig implements ApplicationContextAware {

    private static ApplicationContext context;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) {
        context = applicationContext;
    }

    public static final String FIREFOX_KEY = "myFirefoxDriver";
    public static final String CHROME_KEY = "myChromeDriver";
    public static final String EDGE_KEY = "myEdgeDriver";

    public static final List<String> DRIVER_KEYS = new ArrayList<>(Arrays.asList(
            CHROME_KEY,
            FIREFOX_KEY,
            EDGE_KEY
    ));


    public WebDriver getWebDriver(String key) {
        Object bean = context.getBean(key);
        if (bean instanceof BrowserDriver) {
            return ((BrowserDriver) bean).getDriver();
        }
        return null;
    }
}