我最近遇到了一个问题,所有使用 selenium 模块的 python 脚本都坏了,显然是因为谷歌浏览器更新。似乎 selenium/google chrome 总是要求选择用户配置文件,无论 python 脚本中提供了什么选项,例如“user-data-dir”根本没有效果。即使在无头模式下也会发生这种情况。原始脚本能够在后台下载 pdf,而无需“user-data-dir”选项。
有没有人遇到过同样的问题并找到了解决方案?
下面是一个之前运行良好的示例代码。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
#options.add_argument(r"--user-data-dir=C:\Users\xxx\AppData\Local\Google\Chrome\User Data\Profile 1") # this option does not make any difference
options.add_argument('log-level=3')
options.add_experimental_option("prefs", {
"download.default_directory": directory,
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"plugins.always_open_pdf_externally": True,
})
driver = webdriver.Chrome(options=options)
driver.get("http://www.google.com") #original code used a different website
在 python 中使用 selenium 无需选择用户配置文件。
3
$(function() {
$(“.js-gps-inline-related-questions .spacer”).on(“click”, function () {
fireRelatedEvent($(this).index() + 1, $(this).data(‘question-id’));
});
function fireRelatedEvent(position, questionId) {
StackExchange.using(“gps”, function() {
StackExchange.gps.track(‘related_questions.click’,
{
position: position,
originQuestionId: 78976838,
relatedQuestionId: +questionId,
location: ‘inline’,
source: ‘Baseline_Fallback’
});
});
}
});
function toggleInlineRelated(showMore) {
var inlineRelatedLess = document.getElementById(“inline_related_var_a_less”);
var inlineRelatedMore = document.getElementById(“inline_related_var_a_more”);
var inlineRelatedSeeMore = document.getElementById(“inline_related_see_more”);
var inlineRelatedSeeLess = document.getElementById(“inline_related_see_less”);
if (showMore) {
inlineRelatedLess.classList.add(“d-none”);
inlineRelatedSeeMore.classList.add(“d-none”);
inlineRelatedMore.classList.remove(“d-none”);
inlineRelatedSeeLess.classList.remove(“d-none”);
}
else {
inlineRelatedMore.classList.add(“d-none”);
inlineRelatedSeeLess.classList.add(“d-none”);
inlineRelatedLess.classList.remove(“d-none”);
inlineRelatedSeeMore.classList.remove(“d-none”);
}
}
--headless=old
几天左右是否有效–
–
options = Options() options.add_argument('--profile-directory=Profile 1') options.add_argument("user-data-dir=C:\\Users\\Tumas04\\AppData\\Local\\Google\\Chrome\\User Data\\") #Path to your chrome profile driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe", options=options)
使用单个正斜杠C:/path
–
|