如何在 Selenium Webdriver Chrome 中使用配置文件 Python 3
How to use Chrome Profile in Selenium Webdriver Python 3
所以每当我尝试通过添加
来使用我的Chrome设置(我在默认浏览器中使用的设置)
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\Users\... (my webdriver path)")
driver = webdriver.Chrome(executable_path="myPath", options=options)
它显示错误代码
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes n 16-17: truncated \UXXXXXXXX escape
在我的 bash 中。我不知道那是什么意思,我很乐意得到任何帮助。提前致谢!
确保您的配置文件路径正确,并且在所述路径中对反斜杠进行了两次转义。
例如,通常 windows 上的默认配置文件位于:
"C:\Users\user\AppData\Local\Google\Chrome\User Data\Default"
您确定要在 user-data-dir 参数中放入 webdriver 路径吗?这通常是您放置 chrome 个人资料的地方,例如"C:\Users\yourusername\AppData\Local\Google\Chrome\User Data\Profile 1\"。此外,您还需要在目录路径中使用双反斜杠或正斜杠(两者都有效)。您可以使用 os 库测试您的路径是否有效
例如
import os
os.list("C:\Users\yourusername\AppData\Local\Google\Chrome\User Data\Profile 1")
会给你目录列表。
我可能还会补充一点,如果您在 chrome 具有指定用户配置文件的 运行 webdriver 时偶尔崩溃,它似乎会在配置文件中记录崩溃,并在您下次打开时记录下来chrome,异常退出后提示Chrome恢复页面。对我个人来说,处理这个问题有点头疼,因此我不再使用带有 chrome 驱动程序的用户配置文件。我找不到解决方法。其他人在这里报告过,但是 none 他们的解决方案似乎对我有用,或者不适合我的测试用例。 https://superuser.com/questions/237608/how-to-hide-chrome-warning-after-crash
如果您不指定用户配置文件,它似乎会在每次运行时创建一个新的(空白的)临时配置文件
根据你的问题和你的代码试验,如果你想打开一个Chrome浏览会话,这里有以下内容选项:
要使用默认 Chrome 配置文件:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\Users\AtechM_03\AppData\Local\Google\Chrome\User Data\Default")
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")
注意:您的默认chrome配置文件将包含大量书签、扩展、主题、cookie 等。Selenium 可能加载失败。因此,根据最佳实践,在配置文件中为您的 @Test 和 store/save/configure 创建一个新的 chrome 配置文件数据.
要使用自定义的 Chrome 配置文件:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("user-data-dir=C:\Users\AtechM_03\AppData\Local\Google\Chrome\User Data\Profile 2")
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")
这里有关于How to open a Chrome Profile through Python
的详细讨论
要获取路径,请按照以下步骤操作。
在搜索栏中输入以下内容并按回车键
这将显示所有元数据。在那里找到配置文件的路径
这就是我在 php selenium webdriver 中使用现有 CHROME 配置文件的方式。
配置文件 6 不是我的默认配置文件。我不知道如何 运行 默认配置文件。重要的是不要在 chrome 选项参数之前添加 -- !所有其他选项变体都不起作用!
<?php
//...
$chromeOptions = new ChromeOptions();
$chromeOptions->addArguments([
'user-data-dir=C:/Users/MyUser/AppData/Local/Google/Chrome/User Data',
'profile-directory=Profile 6'
]);
$host = 'http://localhost:4444/wd/hub'; // this is the default
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $chromeOptions);
$driver = RemoteWebDriver::create($host, $capabilities, 100000, 100000);
要获取您的 chrome 个人资料的名称,请转到 chrome://settings/manageProfile,单击个人资料图标,然后单击“在我的桌面上显示个人资料快捷方式”。之后右键单击桌面配置文件图标并转到属性,在这里你会看到类似“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”--profile-directory="Profile 6 ".
我还建议您在 运行 执行此代码之前关闭所有 chrome 个实例。另外,也许您需要关闭 chrome 设置 > 高级 > 系统 >“在 Google Chrome 关闭时继续 运行 宁后台应用程序”。
接受的答案是错误的。这是官方正确的做法:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument(r"--user-data-dir=C:\path\to\chrome\user\data") #e.g. C:\Users\You\AppData\Local\Google\Chrome\User Data
options.add_argument(r'--profile-directory=YourProfileDir') #e.g. Profile 3
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")
要在 Windows 上找到配置文件文件夹,请右键单击要使用的 Chrome 配置文件的桌面快捷方式,然后转到属性 -> 快捷方式,您将在“目标”中找到它" 文本框.
None 给定的答案对我有用,所以我研究了一下,现在的工作代码是这个。我从 chrome://version/ 复制了配置文件路径中的用户目录文件夹,并为配置文件创建了另一个参数,如下所示:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument('user-data-dir=C:\Users\gupta\AppData\Local\Google\Chrome\User Data')
options.add_argument('profile-directory=Profile 1')
driver = webdriver.Chrome(executable_path=r'C:\Program Files (x86)\chromedriver.exe', options=options)
driver.get('https://google.com')
我使用这些参数成功启动了我的 chrome 配置文件:
ChromeOptions options = new ChromeOptions();
options.addArguments("--user-data-dir=C:\Users\user\AppData\Local\Google\Chrome\User Data");
options.addArguments("--profile-directory=Profile 2");
WebDriver driver = new ChromeDriver(options);
您可以了解有关网络驱动程序的更多信息here
您只需将路径中的 '\'
替换为 '/'
即可解决问题。
- 通过从您的 chrome 浏览器导航至 chrome://version 获取配置文件 name(您将看到配置文件路径,但您只想要其中的个人资料名称(例如个人资料 1)
- 使用您要使用的配置文件关闭所有 Chrome 会话。 (否则你会得到以下错误:InvalidArgumentException)
- 现在确保您拥有以下代码(确保将 UserFolder 替换为您的用户文件夹的名称。
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\Users\EnterYourUserFolder\AppData\Local\Google\Chrome\User Data") #leave out the profile
options.add_argument("profile-directory=Profile 1") #enter profile here
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe", chrome_options=options)
这对我 100% 有效,它显示了我选择的个人资料。
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# path of your chrome webdriver
dir_path = os.getcwd()
user_profile_path = os.environ[ 'USERPROFILE' ]
#if "frtkpr" which is ll be your custom profile does not exist it will be created.
option.add_argument( "user-data-dir=" + user_profile_path + "/AppData/Local/Google/Chrome/User Data/frtkpr" )
driver = webdriver.Chrome( dir_path + "/chromedriver.exe",chrome_options=option )
baseUrl = "https://www.facebook.com/"
driver.maximize_window()
driver.get( baseUrl )
所以每当我尝试通过添加
来使用我的Chrome设置(我在默认浏览器中使用的设置)options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\Users\... (my webdriver path)")
driver = webdriver.Chrome(executable_path="myPath", options=options)
它显示错误代码
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes n 16-17: truncated \UXXXXXXXX escape
在我的 bash 中。我不知道那是什么意思,我很乐意得到任何帮助。提前致谢!
确保您的配置文件路径正确,并且在所述路径中对反斜杠进行了两次转义。
例如,通常 windows 上的默认配置文件位于:
"C:\Users\user\AppData\Local\Google\Chrome\User Data\Default"
您确定要在 user-data-dir 参数中放入 webdriver 路径吗?这通常是您放置 chrome 个人资料的地方,例如"C:\Users\yourusername\AppData\Local\Google\Chrome\User Data\Profile 1\"。此外,您还需要在目录路径中使用双反斜杠或正斜杠(两者都有效)。您可以使用 os 库测试您的路径是否有效 例如
import os
os.list("C:\Users\yourusername\AppData\Local\Google\Chrome\User Data\Profile 1")
会给你目录列表。
我可能还会补充一点,如果您在 chrome 具有指定用户配置文件的 运行 webdriver 时偶尔崩溃,它似乎会在配置文件中记录崩溃,并在您下次打开时记录下来chrome,异常退出后提示Chrome恢复页面。对我个人来说,处理这个问题有点头疼,因此我不再使用带有 chrome 驱动程序的用户配置文件。我找不到解决方法。其他人在这里报告过,但是 none 他们的解决方案似乎对我有用,或者不适合我的测试用例。 https://superuser.com/questions/237608/how-to-hide-chrome-warning-after-crash 如果您不指定用户配置文件,它似乎会在每次运行时创建一个新的(空白的)临时配置文件
根据你的问题和你的代码试验,如果你想打开一个Chrome浏览会话,这里有以下内容选项:
要使用默认 Chrome 配置文件:
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = webdriver.ChromeOptions() options.add_argument("user-data-dir=C:\Users\AtechM_03\AppData\Local\Google\Chrome\User Data\Default") driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options) driver.get("https://www.google.co.in")
注意:您的默认chrome配置文件将包含大量书签、扩展、主题、cookie 等。Selenium 可能加载失败。因此,根据最佳实践,在配置文件中为您的 @Test 和 store/save/configure 创建一个新的 chrome 配置文件数据.
要使用自定义的 Chrome 配置文件:
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() options.add_argument("user-data-dir=C:\Users\AtechM_03\AppData\Local\Google\Chrome\User Data\Profile 2") driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options) driver.get("https://www.google.co.in")
这里有关于How to open a Chrome Profile through Python
的详细讨论
要获取路径,请按照以下步骤操作。
在搜索栏中输入以下内容并按回车键
这将显示所有元数据。在那里找到配置文件的路径
这就是我在 php selenium webdriver 中使用现有 CHROME 配置文件的方式。 配置文件 6 不是我的默认配置文件。我不知道如何 运行 默认配置文件。重要的是不要在 chrome 选项参数之前添加 -- !所有其他选项变体都不起作用!
<?php
//...
$chromeOptions = new ChromeOptions();
$chromeOptions->addArguments([
'user-data-dir=C:/Users/MyUser/AppData/Local/Google/Chrome/User Data',
'profile-directory=Profile 6'
]);
$host = 'http://localhost:4444/wd/hub'; // this is the default
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $chromeOptions);
$driver = RemoteWebDriver::create($host, $capabilities, 100000, 100000);
要获取您的 chrome 个人资料的名称,请转到 chrome://settings/manageProfile,单击个人资料图标,然后单击“在我的桌面上显示个人资料快捷方式”。之后右键单击桌面配置文件图标并转到属性,在这里你会看到类似“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”--profile-directory="Profile 6 ".
我还建议您在 运行 执行此代码之前关闭所有 chrome 个实例。另外,也许您需要关闭 chrome 设置 > 高级 > 系统 >“在 Google Chrome 关闭时继续 运行 宁后台应用程序”。
接受的答案是错误的。这是官方正确的做法:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument(r"--user-data-dir=C:\path\to\chrome\user\data") #e.g. C:\Users\You\AppData\Local\Google\Chrome\User Data
options.add_argument(r'--profile-directory=YourProfileDir') #e.g. Profile 3
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")
要在 Windows 上找到配置文件文件夹,请右键单击要使用的 Chrome 配置文件的桌面快捷方式,然后转到属性 -> 快捷方式,您将在“目标”中找到它" 文本框.
None 给定的答案对我有用,所以我研究了一下,现在的工作代码是这个。我从 chrome://version/ 复制了配置文件路径中的用户目录文件夹,并为配置文件创建了另一个参数,如下所示:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument('user-data-dir=C:\Users\gupta\AppData\Local\Google\Chrome\User Data')
options.add_argument('profile-directory=Profile 1')
driver = webdriver.Chrome(executable_path=r'C:\Program Files (x86)\chromedriver.exe', options=options)
driver.get('https://google.com')
我使用这些参数成功启动了我的 chrome 配置文件:
ChromeOptions options = new ChromeOptions();
options.addArguments("--user-data-dir=C:\Users\user\AppData\Local\Google\Chrome\User Data");
options.addArguments("--profile-directory=Profile 2");
WebDriver driver = new ChromeDriver(options);
您可以了解有关网络驱动程序的更多信息here
您只需将路径中的 '\'
替换为 '/'
即可解决问题。
- 通过从您的 chrome 浏览器导航至 chrome://version 获取配置文件 name(您将看到配置文件路径,但您只想要其中的个人资料名称(例如个人资料 1)
- 使用您要使用的配置文件关闭所有 Chrome 会话。 (否则你会得到以下错误:InvalidArgumentException)
- 现在确保您拥有以下代码(确保将 UserFolder 替换为您的用户文件夹的名称。
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\Users\EnterYourUserFolder\AppData\Local\Google\Chrome\User Data") #leave out the profile
options.add_argument("profile-directory=Profile 1") #enter profile here
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe", chrome_options=options)
这对我 100% 有效,它显示了我选择的个人资料。
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# path of your chrome webdriver
dir_path = os.getcwd()
user_profile_path = os.environ[ 'USERPROFILE' ]
#if "frtkpr" which is ll be your custom profile does not exist it will be created.
option.add_argument( "user-data-dir=" + user_profile_path + "/AppData/Local/Google/Chrome/User Data/frtkpr" )
driver = webdriver.Chrome( dir_path + "/chromedriver.exe",chrome_options=option )
baseUrl = "https://www.facebook.com/"
driver.maximize_window()
driver.get( baseUrl )