eta*_*luz 7 cookies selenium google-chrome session-cookies selenium-webdriver
尽管我意识到这不是“好的”做法-我有一个用例,需要将Selenium驱动程序指向(连接)我的默认Chrome会话/配置文件。
我的默认个人资料在这里:
~/Library/Caches/Google/Chrome/Default
这是我当前的设置方式:(不起作用)
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--user-data-dir=~/Library/Caches/Google/Chrome")
options.add_argument("--profile-directory=Default")
browser = webdriver.Chrome(options=options, executable_path=r"./chromedriver")
browser.get("http://google.com")
Run Code Online (Sandbox Code Playgroud)
我正在使用Chrome版本74.0.3729.169和chromedriver版本ChromeDriver 74.0.3729.6(这是兼容版本)。
Chrome打开后,我在Chrome的设置中看不到任何Cookie,因此很明显它没有指向我的默认会话。另外,我看到Selenium已经创建了一个目录(这似乎表示该目录无法连接到的会话)~/Library/Caches/Google/Chrome/Default。
如何将硒连接到默认的Chrome会话?这与正常打开Chrome浏览器时看到的会话相同。
我已经看过另一个问题,但是那里的答案无法解决如何将Selenium指向默认会话。另外-这是一个过时的问题-从那时起,Chrome和Chromedriver取得了很大进步。另外,这里的问题假定发布者能够连接到默认会话-我无法执行此操作,这表明此后Chromedriver / Chrome已经更改。这个问题也是针对Windows的-我在Mac上工作方式有所不同。
确保使用“ Chrome:// version”指向正确的文件夹。
我正在使用Windows,但在您的Mac情况下也应该类似。
有关更多信息,请参考此链接。
如何创建自定义配置文件:
您可以通过仅在用户数据目录开关设置为某个新目录的情况下运行Chrome(在命令行中或通过ChromeDriver)来创建自己的自定义配置文件。如果路径不存在,Chrome会在指定位置创建一个新的配置文件。然后,您可以根据需要修改配置文件设置,ChromeDriver以后可以使用该配置文件。在浏览器中打开chrome:// version,以查看Chrome使用的配置文件。
参考:
http://chromedriver.chromium.org/capabilities
首先,不,您不能将 Selenium 驱动程序指向(连接)到任何现有/以前的Web Browsing session。即使您能够从现有/以前的Web 浏览会话中提取Session ID、Cookies和其他会话属性,您仍然无法将这些属性作为 HOOK 传递给WebDriver。
您可以在如何使用 selenium 重新连接到 webdriver 打开的浏览器中找到详细讨论?
但是粗略的你可以连接到现有的默认 Chrome 配置文件。
您似乎已经意识到尝试使用默认 Chrome 配置文件进行测试自动化将违反所有最佳实践,因为默认 Chrome 配置文件可能包含以下任一/所有内容:
因此,默认 Chrome 配置文件可能不符合您的测试规范,并且在尝试加载时可能偶尔会引发异常。因此,您应该始终使用自定义的 Chrome 配置文件。
如果您的用例仍然保证使用默认 Chrome 配置文件,您需要遵循以下提到的详细信息。
根据如何在 Windows、Mac 和 Linux 上查找 Chrome 配置文件文件夹中的文档,Chrome 的默认配置文件文件夹的位置因平台而异。地点是:
C:\Users\<username>\AppData\Local\Google\Chrome\User Data\DefaultUsers/<username>/Library/Application Support/Google/Chrome/Default/home/<username>/.config/google-chrome/default您需要替换<username>为您的用户文件夹的名称。默认配置文件文件夹简单地命名为 Default(或 Linux 中的 default)。但是,如果您创建了额外的配置文件,它们的文件夹名称就不那么明显了。您在创建配置文件时为其分配的名称显示在 Chrome 窗口标题栏右侧的名称按钮上。不幸的是,Chrome 在关联的配置文件文件夹中使用的名称是一个通用的编号名称,例如Profile 3.
如果您需要知道任何Chrome 配置文件的文件夹名称,您只需chrome://version在地址栏中访问并按 Enter。
快照:
在Profile Path显示当前配置文件的位置。例如,我的默认配置文件在我的Windows 10系统中的位置是C:\Users\Soma Bhattacharjee\AppData\Local\Google\Chrome\User Data\Default. 您可以选择路径并将其复制并粘贴到 Windows 中的文件资源管理器、OS X上的 Finder或Linux 中的Nautilus等文件管理器中以访问该文件夹。
最后,要访问默认 Chrome 配置文件,您可以使用以下基于Python的解决方案:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\\Users\\Soma Bhattacharjee\\AppData\\Local\\Google\\Chrome\\User Data\\Default")
driver = webdriver.Chrome(executable_path=r'C:\WebDrivers\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")
Run Code Online (Sandbox Code Playgroud)
您可以在How to use Chrome Profile in Selenium Webdriver Python 3 中找到详细讨论
| 归档时间: |
|
| 查看次数: |
1095 次 |
| 最近记录: |