为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

临摹微笑 2023-04-13 15:22:20
我正在使用 chromedriver 运行 selenium,一切正常。最近我尝试同时使用 10 个 chromedriver,它占用了所有可用内存,所以我尝试使用 ChromeOptions 中的 headless 选项来解决它。尝试了这些选项:        options.addArguments("--headless");        options.addArguments("--disable-gpu");        options.addArguments("--window-size=1920,1200");        options.addArguments("--ignore-certificate-errors");但是当程序使用 --headless 选项运行时它不会工作。(它在没有无头的情况下工作过)这就是我设置 chromeDriver 的方式: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);        }例如我如何找到没有无头选项的元素:driver.findElement(By.xpath("//input[@id='identifierId']")).sendKeys(dumper.getUsername() + Keys.ENTER);我正在使用 Windows 10,chrome 版本 75.0.3770.142(官方构建)(64 位),ChromeDriver 75.0.3770.140试图在类似的帖子中找到一些信息,但找不到有效的解决方案。谢谢。
查看完整描述

1 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

你可以简单地尝试这样


    ChromeOptions chromeOptions = new ChromeOptions();

    chromeOptions.addArguments("--headless");


    WebDriver wDriver = new ChromeDriver(chromeOptions);


查看完整回答
反对 回复 2023-04-13
  • 1 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信