Selenium Python 问题汇总
1. 在自动化打开浏览器后会长时间加载,此时使用如下命令解决:
driver.set_page_load_timeout(20) # 设置浏览器超时加载时间
driver.set_script_timeout(20)#这两种设置都进行才有效
2. 防止浏览器长时间加载的正确做法
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# get直接返回,不再等待界面加载完成
desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities[“pageLoadStrategy”] = “none”
driver = webdriver.Chrome(executable_path=‘chromedriver.exe’)
配置一个参数,就是页面加载策略,系统默认是等待,就是等他加载完,直接设置成none,就是不等待,这样就是get操作完后直接就是结束了;
(1)NONE:html下载完成,不等待解析完成即返回;
(2)EAGER:要等待整个dom树加载完成,即DOMContentLoaded这个事件完成,仅对html的内容进行下载解析;
(3)NORMAL: 等待整个界面加载完成(指对html和子资源的下载与解析,如JS文件,图片等,不包括ajax)
3.防止浏览器长时间加载的方法(适用于Selenium4.0)
chrome_options = webdriver.ChromeOptions()
chrome_options.page_load_strategy = 'none'
driver = webdriver.Chrome(options=chrome_options)
4. 模拟手机浏览器
# 创建Chrome浏览器选项对象
chrome_options = Options()
# 设置Chrome浏览器为移动设备模式
chrome_options.add_experimental_option("mobileEmulation", {"deviceName": "iPhone X"})
# 启动Chrome浏览器并应用选项
driver = webdriver.Chrome(options=chrome_options)
chrome_options = Options()
# 设置Chrome浏览器为移动设备模式
chrome_options.add_experimental_option("mobileEmulation", {"deviceName": "iPhone X"})
# 启动Chrome浏览器并应用选项
driver = webdriver.Chrome(options=chrome_options)