相关疑难解决方法(0)

下载铬无头和硒

我正在使用python-selenium和Chrome 59,并试图自动化一个简单的下载序列.当我正常启动浏览器时,下载工作正常,但是当我在无头模式下这样做时,下载不起作用.

# Headless implementation
from selenium import webdriver

chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument("headless")

driver = webdriver.Chrome(chrome_options=chromeOptions)

driver.get('https://www.mockaroo.com/')
driver.find_element_by_id('download').click()
# ^^^ Download doesn't start
Run Code Online (Sandbox Code Playgroud)
# Normal Mode
from selenium import webdriver

driver = webdriver.Chrome()

driver.get('https://www.mockaroo.com/')
driver.find_element_by_id('download').click()
# ^^^ Download works normally
Run Code Online (Sandbox Code Playgroud)

我甚至尝试添加默认路径:

prefs = {"download.default_directory" : "/Users/Chetan/Desktop/"}
chromeOptions.add_argument("headless")
chromeOptions.add_experimental_option("prefs",prefs)
Run Code Online (Sandbox Code Playgroud)

添加默认路径在正常实现中起作用,但无头版本中仍存在相同的问题.

如何在无头模式下启动下载?

python selenium google-chrome google-chrome-headless

54
推荐指数
5
解决办法
3万
查看次数

如何使用 selenium webdriver 在 chrome 中下载 pdf 文件

我想使用 selenium 在 chrome 中下载 pdf。

System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")  
               + System.getProperty("file.separator")
               + "BrowserDrivers"
               + System.getProperty("file.separator")
               + "chromedriver.exe");

String downloadFilepath = "C:\\Users\\Vinod\\Downloads";

HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);

//Save Chrome Opions
ChromeOptions options = new ChromeOptions();
HashMap<String, Object> chromeOptionsMap = new HashMap<String, Object>();
options.setExperimentalOption("prefs", chromePrefs);
options.addArguments("--test-type");


DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(ChromeOptions.CAPABILITY, chromeOptionsMap);
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);


driver = new ChromeDriver(cap);
driver.get(url);
Run Code Online (Sandbox Code Playgroud)

我尝试了上面的代码,但它不起作用

java selenium selenium-webdriver

4
推荐指数
1
解决办法
4万
查看次数

使用ChromeDriver和无头模式下载Java,Selenium中的文件

由于我还不清楚如何使用ChromeDriver中的--headless模式下载文件 - selenium [Java],请在此处添加如何执行此操作的示例,我尝试这样做(文件下载工作正常,没有 - 无头选项):

ChromeOptions lChromeOptions = new ChromeOptions();
HashMap<String, Object> lChromePrefs = new HashMap<String, Object>();
lChromePrefs.put("profile.default_content_settings.popups", 0);
lChromePrefs.put("download.default_directory", _PATH_TO_DOWNLOAD_DIR);
lChromePrefs.put("browser.set_download_behavior", "{ behavior: 'allow' , downloadPath: '"+_PATH_TO_DOWNLOAD_DIR+"'}");

lChromeOptions.addArguments("--headless");
lChromeOptions.addArguments("--disable-gpu");
lChromeOptions.setExperimentalOption("prefs", lChromePrefs);
WebDriver lWebDriver = new ChromeDriver(lChromeOptions);
Run Code Online (Sandbox Code Playgroud)

据我所知,自从Chrome v60 +设置以来Browser.setDownloadBehaviour(true, _DIRECTORY)我无法以无头模式下载文件但我无法找到ChromeDriver是否已经支持它的信息,或者只是我使用错误的chrome首选项作为参数

ChromeDriver版本:2.34 Selenium + WebDriver版本:3.8.1

java selenium google-chrome headless-browser selenium-chromedriver

3
推荐指数
1
解决办法
3712
查看次数