要在 Selenium 中使用 Chrome 浏览器的用户数据目录,可以通过添加
--user-data-dir
参数来指定 Chrome 的配置文件路径。你可以先手动启动 Chrome 浏览器,并创建一个配置文件,然后在 Selenium 脚本中使用这个配置文件。
创建 ChromeProfile
- 手动启动 Chrome 并创建配置文件: 打开终端或命令提示符,运行以下命令启动 Chrome 并指定用户数据目录:
chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenium\ChromeProfile"
这会启动 Chrome 浏览器并创建一个新的用户数据目录C:\selenium\ChromeProfile
。 - 自定义 ChromeProfile: 你可以在启动的 Chrome 浏览器中进行各种自定义设置(如登录、安装扩展等)。这些设置会保存在
C:\selenium\ChromeProfile
目录中。
在 Selenium 中使用 ChromeProfile
现在你已经创建了一个 ChromeProfile,可以在你的 Selenium 脚本中使用这个配置文件。以下是一个示例代码,展示如何在 Selenium 中使用
--remote-debugging-port
和
--user-data-dir
参数:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
chrome_options = Options()
chrome_options.add_argument("--remote-debugging-port=9222")
chrome_options.add_argument(r'--user-data-dir=C:\selenium\ChromeProfile')# 其他选项
chrome_options.add_argument("--headless")# 如果需要无头模式
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_experimental_option("excludeSwitches",["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension',False)
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)# 测试代码
driver.get("http://www.google.com")print(driver.title)
driver.quit()
说明
- **
--remote-debugging-port=9222
**:启用远程调试端口。这对于调试和开发非常有用。 - **
--user-data-dir=C:\selenium\ChromeProfile
**:指定用户数据目录。请确保这个路径存在,并且是你之前创建的配置文件路径。 - 其他选项:
--headless
、--no-sandbox
、--disable-dev-shm-usage
等选项可以根据需要添加。
查找现有的 ChromeProfile
如果你已经有一个现有的 Chrome 配置文件,可以通过以下步骤找到它的位置:
- Windows:- 默认路径:
C:\Users\[YourUsername]\AppData\Local\Google\Chrome\User Data
- 你可以将上述路径用于--user-data-dir
参数。 - macOS:- 默认路径:
/Users/[YourUsername]/Library/Application Support/Google/Chrome
- 你可以将上述路径用于--user-data-dir
参数。 - Linux:- 默认路径:
/home/[YourUsername]/.config/google-chrome
- 你可以将上述路径用于--user-data-dir
参数。
总结
通过使用
--remote-debugging-port
和
--user-data-dir
参数,你可以在 Selenium 中使用定制的 Chrome 配置文件,从而保持登录状态和其他自定义设置。这对于需要在自动化测试中保持状态的场景非常有用。
要在 Microsoft Edge 中使用特定的用户数据目录和远程调试端口,你需要使用
selenium
和
webdriver_manager
库,并相应地配置 Edge 浏览器的选项。以下是如何修改代码以适应 Edge 浏览器的示例。
创建 EdgeProfile
首先,你需要手动创建一个 Edge 浏览器的用户数据目录。你可以通过命令行启动 Edge 并指定用户数据目录:
msedge.exe --remote-debugging-port=9222 --user-data-dir="C:\selenium\EdgeProfile"
这会启动 Edge 浏览器并创建一个新的用户数据目录
C:\selenium\EdgeProfile
。
在 Selenium 中使用 EdgeProfile
然后,你可以在 Selenium 脚本中使用这个配置文件。以下是一个示例代码,展示如何在 Selenium 中使用
--remote-debugging-port
和
--user-data-dir
参数:
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options
from webdriver_manager.microsoft import EdgeChromiumDriverManager
edge_options = Options()
edge_options.add_argument("--remote-debugging-port=9222")
edge_options.add_argument(r'--user-data-dir=C:\selenium\EdgeProfile')# 其他选项
edge_options.add_argument("--headless")# 如果需要无头模式
edge_options.add_argument("--no-sandbox")
edge_options.add_argument("--disable-dev-shm-usage")
edge_options.add_experimental_option("excludeSwitches",["enable-automation"])
edge_options.add_experimental_option('useAutomationExtension',False)
service = Service(EdgeChromiumDriverManager().install())
driver = webdriver.Edge(service=service, options=edge_options)# 测试代码
driver.get("http://www.google.com")print(driver.title)
driver.quit()
说明
- **
--remote-debugging-port=9222
**:启用远程调试端口。 - **
--user-data-dir=C:\selenium\EdgeProfile
**:指定用户数据目录。请确保这个路径存在,并且是你之前创建的配置文件路径。 - 其他选项:
--headless
、--no-sandbox
、--disable-dev-shm-usage
等选项可以根据需要添加。
查找现有的 EdgeProfile
如果你已经有一个现有的 Edge 配置文件,可以通过以下步骤找到它的位置:
- Windows:- 默认路径:
C:\Users\[YourUsername]\AppData\Local\Microsoft\Edge\User Data
- 你可以将上述路径用于--user-data-dir
参数。 - macOS:- 默认路径:
/Users/[YourUsername]/Library/Application Support/Microsoft Edge
- 你可以将上述路径用于--user-data-dir
参数。 - Linux:- 默认路径:
/home/[YourUsername]/.config/microsoft-edge
- 你可以将上述路径用于--user-data-dir
参数。
完整示例代码
以下是一个完整的示例代码,结合了上述所有方法来配置 Edge 浏览器:
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options
from webdriver_manager.microsoft import EdgeChromiumDriverManager
import time
import random
defhuman_like_delay():
time.sleep(random.uniform(1,3))
edge_options = Options()
edge_options.add_argument("--remote-debugging-port=9222")
edge_options.add_argument(r'--user-data-dir=C:\selenium\EdgeProfile')# 其他选项
edge_options.add_argument("--headless")# 如果需要无头模式
edge_options.add_argument("--no-sandbox")
edge_options.add_argument("--disable-dev-shm-usage")
edge_options.add_experimental_option("excludeSwitches",["enable-automation"])
edge_options.add_experimental_option('useAutomationExtension',False)
service = Service(EdgeChromiumDriverManager().install())
driver = webdriver.Edge(service=service, options=edge_options)# 测试代码
driver.get("http://www.google.com")
human_like_delay()
search_box = driver.find_element_by_name("q")
search_box.send_keys("Selenium")
human_like_delay()
search_box.submit()
human_like_delay()print(driver.title)
driver.quit()
通过这些方法,你可以在 Edge 浏览器中使用定制的配置文件和远程调试端口,从而保持登录状态和其他自定义设置。这对于需要在自动化测试中保持状态的场景非常有用。希望这些方法对你有所帮助!
版权归原作者 worxfr 所有, 如有侵权,请联系我们删除。