selenium手册


爬虫常用的option备份

options = webdriver.ChromeOptions()

# 无头模式
options.add_argument("--headless")
# 无沙盒模式
options.add_argument('--no-sandbox')
# 默认情况下,Chrome 使用 /dev/shm(共享内存)来提高性能,但在内存有限的系统中(如 Docker 容器),可能需要禁用
options.add_argument('--disable-dev-shm-usage')
# 禁用所有 Chrome 扩展
options.add_argument('--disable-extensions')
# 防止网站检测到自动化工具(即 WebDriver)
options.add_argument("--disable-blink-features=AutomationControlled")
# 禁用 GPU 硬件加速,在某些环境中(特别是无头模式),禁用 GPU 可以避免一些不兼容问题。
options.add_argument("--disable-gpu")
# 当 DOMContentLoaded 事件触发时,Selenium 会认为页面加载完成,适合对页面完全加载不敏感的场景,可以提高效率。
options.page_load_strategy = 'eager'
options.add_argument(
    "user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3")

# 添加代理
options.add_argument(f"--proxy-server={proxy_ip}:{proxy_port}")

切换窗口

driver.switch_to.window(driver.window_handles[0])

使用远程selenium driver

# Selenium Grid地址
command_executor = "http://selenium example.com/wd/hub"
# driver = webdriver.Remote(command_executor=command_executor, options=options)

显式等待某个元素加载

# 等待搜索框元素加载完成
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//*[@class='search-wrapper main-search white']")))

  目录