当前位置: 首页 > 知识库问答 >
问题:

尝试使用无头chromedriver选项时,Selenium找不到WebElements

严宇
2023-03-14

我正在用chromedriver运行selenium,并且它都运行得很好。最近我试着同时使用10个chromedrivers,这会占用所有可用的内存,所以我试着用ChromeOptions中的headless选项来解决这个问题。

尝试了以下选项:

        options.addArguments("--headless");
        options.addArguments("--disable-gpu");
        options.addArguments("--window-size=1920,1200");
        options.addArguments("--ignore-certificate-errors");
private ChromeDriver setupChromeDriver(String proxyAddress, String downloadFilePath){
        try{
            HashMap<String, Object> chromePrefs = new HashMap<>();
            chromePrefs.put("profile.default_content_settings.popups", 0);
            chromePrefs.put("download.default_directory", downloadFilePath);
            ChromeOptions options = new ChromeOptions();
            options.setExperimentalOption("prefs", chromePrefs);
            options.addArguments("--headless");
            options.addArguments("--disable-gpu");
            options.addArguments("--window-size=1920,1200");
            options.addArguments("--ignore-certificate-errors");
            DesiredCapabilities cap = DesiredCapabilities.chrome();
            cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
            cap.setCapability(ChromeOptions.CAPABILITY, options);
            if(!proxyAddress.equals(""))
                cap.setCapability("proxy", setupChromeProxy(proxyAddress));
            ChromeDriverService chromeDriverService = new ChromeDriverService.Builder().build();
            options.merge(cap);
            logger.info("Selenium chrome driver set up with updated download location");
            return new ChromeDriver(chromeDriverService, options);
        }
        catch (Exception e){
            logger.info(e.getMessage());
            logger.info(BaseUtilities.getStackTrace(e));
            e.printStackTrace();
            return null;
        }
    }
driver.findElement(By.xpath("//input[@id='identifierId']")).sendKeys(dumper.getUsername() + Keys.ENTER);

试图在类似的帖子中找到一些信息,但找不到一个有效的解决方案。谢谢你。

共有1个答案

卓瀚
2023-03-14

你可以像这样试一下

    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("--headless");

    WebDriver wDriver = new ChromeDriver(chromeOptions);
 类似资料: