我最近开始研究硒。
目前,我正在使用网络驱动程序下载和上传文件。
上传时,浏览器提交表单,下一步操作仅在页面导航时发生。
但对于下载,浏览器会继续下载文件并继续执行进一步的操作。
这里,需要下载文件的百分比,以便我可以等到下载完成。此外,有没有办法通过Selenium获取HTTPResponse对象来检查响应标头。
我正在使用ChromeOptions
和DesiredCap能力
来设置不同的属性。
webDriver=new ChromeDriver(chromeDesiredCap能力);
ChromeOptions chromeOptions = new ChromeOptions();
HashMap<String, Object> chromePreferences = new HashMap<String, Object>();
chromePreferences.put("profile.default_content_settings.popups", 0);
chromePreferences.put("download.default_directory", browserDownloadDirectoryPath);
chromePreferences.put("safebrowsing.enabled", "true");
chromeOptions.setExperimentalOption("prefs", chromePreferences);
chromeOptions.addArguments("--test-type");
chromeDesiredCapabilities = DesiredCapabilities.chrome();
chromeDesiredCapabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
我知道这是3年前的帖子,但我想提供答案,以便帮助某人。
您可以使用chrome下载状态挑衅地获取文件下载的当前状态(我的意思是下载的百分比)。
下面是返回最新文件下载百分比的python实现。
def getDownLoadedPercentage():
endTime = time.time() + 180
while True:
try:
downloadPercentage = driver.execute_script(
"return document.querySelector('downloads-manager').shadowRoot.querySelector('#downloadsList downloads-item').shadowRoot.querySelector('#progress').value")
if downloadPercentage:
return downloadPercentage
except:
pass
time.sleep(1)
if time.time() > endTime:
break
当您需要知道下载的状态时,只需调用该方法,如下所示。
print(getDownLoadedPercentage())