在 Selenium 中使用 Chrome 浏览器的用户数据目录
要在 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
def human_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 浏览器中使用定制的配置文件和远程调试端口,从而保持登录状态和其他自定义设置。这对于需要在自动化测试中保持状态的场景非常有用。希望这些方法对你有所帮助!
原文地址:https://blog.csdn.net/sinat_41883985/article/details/142556130
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!