问题标签 [chrome-profile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 禁用弹出“恢复页面?Chrome 未正确关闭”。在 selenium webdriver Java 中
虽然我已经看到了一些相关的问题,但我再次提出这个问题,因为我仍然面临这个问题。我有一个网站在第一次登录时要求输入登录验证码,然后在进一步的登录实例中不再询问。如果我不使用自定义浏览器配置文件,则每次 selenium 运行登录时网站都会询问验证码。因此我使用了如下的自定义浏览器配置文件(这不是问题)
然后,测试完成后,我退出浏览器使用
问题是,下次我再次运行测试时,chrome 浏览器会打开并弹出“恢复页面?Chrome 没有正确关闭”。并且网站在登录后再次要求验证码。输入验证码不是我的脚本的一部分,所以脚本失败了。然后我通过单击右上角的 X 手动关闭浏览器。然后我再次运行测试,chrome浏览器打开正常,没有弹窗,网站不要求验证码,登录成功。然后,脚本通过 driver.quit() 关闭浏览器本身。然后我再次运行测试,chrome浏览器打开并弹出窗口,测试再次失败。这表明 driver.quit() 没有正确关闭浏览器。我已经尝试了几种设置,但仍然弹出窗口。
- 首选项文件->
"exit_type":"none"
(以及“正常”)和exit cleanly = true
- 站点设置 -> 弹出窗口和重定向 -> 已阻止(推荐)
- 我也试过检查警报是否存在,但它说“没有警报”。脚本不会将弹出窗口检测为警报。
在上一次测试运行中 driver.quit() 关闭浏览器后,如何确保每次正常打开浏览器?请帮忙。
下面是我的代码:我使用 chrome 扩展,所以我也不能禁用扩展。
我不想使用隐身模式,因为我需要保留cookie和密码以防止前面提到的登录验证码问题。
python - 如何使用 Selenium 和 Python 通过 Headless Chrome 使用 Chrome 配置文件
有我的代码。我想将其更改为无头浏览器。但我收到一个错误。
我添加了屏幕截图以显示错误。
c# - 如何使用 ChromeDriver 版本 83.0.4103.39 和 Selenium 使用 user-data-dir 标志启动 Chrome 无头
代码
错误:
OpenQA.Selenium.WebDriverException:'对 URL http://localhost:64225/session 的远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。
我也试过
控制台输出
python - 未知错误:Chrome 无法启动:通过 Selenium 和 Python 使用带有无头 chrome 的 user-data-dir 参数退出异常错误
我在一个抓取项目中,当然我正在尝试获取一个页面。
这是我用来打开页面的代码:
我的问题
问题是当它到达时它什么也不做,driver.get()
我的意思是它既不结束进程也不打印"starting wait"
。(问题在我的笔记本电脑和服务器上仍然存在)我尝试删除该--headless
选项,它在我的笔记本电脑(Ubuntu 20.04)上运行良好,但是当我将它上传到我的服务器并在那里运行时(Ubuntu Server 18.04)它镀铬崩溃(下面的异常消息)
消息:未知错误:Chrome 无法启动:异常退出。(未知错误:DevToolsActivePort 文件不存在)(从 chrome 位置 /usr/bin/google-chrome 启动的进程不再运行,因此 ChromeDriver 假设 Chrome 已崩溃。)
所以我得出的结论是我必须使用--headless
选项,因为我的服务器上没有 GUI,并且当它不存在时 chrome 崩溃。
总之,我需要帮助来解决无限等待的问题driver.get()
PS:我可以毫无问题地运行下面的代码,这对我来说很奇怪:
c# - 我正在尝试将我的 chrome 配置文件与 webdriver 一起使用,但它说它已经附加
您可以在下面看到我正在使用的代码,以将另一个配置文件与 webdriver 一起使用。我需要知道这是如何完成的,因为我希望能够将我当前的 chrome 配置文件加载到 webdriver
运行时出错:
selenium - 如何在后续的无头 Selenium 运行之间保存 Instagram 登录
tl;Selenium 脚本的 dr chrome 配置文件每次都在非无头模式下工作,但(有时)在无头模式下失败。
我有一个每隔一小时运行一次的 Selenium python 脚本,需要我登录 Instagram。因为我在 Heroku 上部署它(如果 insta 检测到异常登录,我会强制我经常更改密码),我的脚本使用无头 Chrome 浏览器登录一次(从登录屏幕到 insta feed 屏幕)第一次运行,创建一个 chrome 配置文件,然后为我的后续脚本会话运行使用相同的 chrome 配置文件(带有保存的 cookie 等),以消除每次登录的需要。如果它检测到我尚未作为后备登录,它还会在以后的运行中重新登录我。
当我在 MacOS 上本地运行脚本时,我的脚本始终有效headless=False
- 第一次运行始终正确登录并创建 chrome 配置文件,该配置文件成功用于在下一次运行中直接进入我的 insta 提要。但是,当我使用 本地(或在 Heroku 中)运行它时headless=True
,配置文件有时不会保存我的登录信息(然后我最终需要在下次运行时重新登录)。以下是我传递给我的网络驱动程序的选项:
如果需要,我正在尝试使用该user-data-dir
选项创建配置文件(请注意,/chrome_profile_1 在第一次运行之前在 repo 中不存在),如果它已经存在,则检索它。
我已经验证,在我的所有运行中,驱动程序最终都会到达 insta 提要视图,因此我的登录逻辑没有问题。即使在登录没有正确保存的时候,脚本仍然总是成功地创建 chrome_profile 目录。我尝试将我的 chrome_profile_1 直接推送到我的 Heroku 实例,但它也不起作用(我认为 Heroku-buildpack-google-chrome 与我的本地 chrome 实例生成的配置文件不兼容)。
除了最后,我还尝试添加driver.close()
一些额外的时间,driver.quit()
以防 chrome 无头浏览器的不当关闭可能是无头与非无头运行的区别,但这似乎并不能解决问题。另外,我尝试添加诸如--profile-directory=, 'disable-dev-shm-usage', --hide-scrollbars, --single-process, --ignore-certificate-errors
.
PS:在相关说明中,Heroku 似乎在两次运行之间丢弃了创建的 chrome 配置文件目录(https://help.heroku.com/K1PPS2WM/why-are-my-file-uploads-missing-deleted) - 一旦我弄清楚如何正确创建 chrome 配置文件,有没有办法在 Heroku 实例本身的运行之间保存它,或者我必须将它存储在外部,然后在下次运行时将其拉入 Heroku?
python-3.x - 如何在 selenium python 中使用特定的 Chrome 配置文件
请不要将此标记为重复首先正确阅读我的问题..
这是我的代码:
这是我得到的错误:
问题是默认和配置文件 1 位于同一目录中的用户数据(创建新配置文件并不能解决上述答案中提到的问题)..所以如果我使用另一个带有“默认”的 chrome 选项卡运行此脚本在后台运行的配置文件出现此错误..如何确保此错误消失(在运行此脚本时,我无法使用默认配置文件关闭其他 chrome 选项卡)
python - Python Selenium Chrome“用户数据目录已在使用中”
我正在尝试使用 selenium 在 python 中创建一个脚本,该脚本将打开一个网站并单击一个按钮。问题是我必须先关闭 chrome,然后才能运行脚本,否则我会收到此错误:
有没有办法解决这个问题,所以我不必在每次运行脚本之前关闭 chrome?
我的代码:
selenium - 解压后的 Chrome 扩展程序未显示在 Chrome 配置文件的 Extensions 文件夹中
我解压并加载了 Chrome 的扩展程序https://github.com/iamadamdev/bypass-paywalls-chrome,但我需要在 Chrome 配置文件路径 /Users//Library/Application Support 的 Extensions 文件夹中找到其对应的文件夹/Google/Chrome/Default/Extensions/ 我在那里找不到。
我的 Chrome 扩展程序的其余部分都在那里,但它们是直接从 Chrome 网上应用店安装的,而这个是用开发者模式解压的,所以我想知道这是否是问题所在?如果是这样,或者是由于其他原因,有没有办法解决这个问题?我需要为我的基于 Selenium 的项目找到它,其中 WebDriver 打开带有预加载扩展的 Chrome 浏览器,遵循https://seleniumjava.com/2016/05/22/start-the-chrome-browser-with-扩展/