Selenium的常用方法,以Chrome为例
获取驱动对象
browser= webdriver.Chrome()
browser.set_page_load_timeout(10) # 页面加载超时时间
browser.set_script_timeout(10) # 页面js加载超时时间
浏览器配置项
from selenium.webdriver.chrome.options import Options
options = Options()
browser= webdriver.Chrome(options=options)
加载用户配置文件
options.add_argument(r'--user-data-dir=C:\Users\用户名\AppData\Local\Google\Chrome\User Data')
无痕模式
options.add_argument('--incognito')
无头模式
options.add_argument('headless')
开发者模式
options.add_experimental_option('excludeSwitches', ['enable-automation'])
模拟手机
options.add_experimental_option('mobileEmulation', {'deviceName': 'iPhone X'}) # 模拟iPhone X浏览
禁用显卡
options.add_argument('--disable-gpu')
禁止加载图片和JS
prefs = {
'profile.default_content_setting_values': {
'images': 2,
'permissions.default.stylesheet': 2,
'javascript': 2
}
}
options.add_experimental_option('prefs', prefs)
设置代理**
options.add_argument("--proxy-server=http://45.77.172.182:9398")
浏览器窗口全屏
browser.fullscreen_window
最大化浏览器窗口
browser.maximize_window()
最小化浏览器窗口
browser.minimize_window()
窗口指定分辨率
options.add_argument('window-size=1280,800')
设置网页加载等待时间
browser.implicitly_wait(5)
打开网页
browser.get('https://www.baidu.com/')
截图到文件的同级路径
browser.save_screenshot('cs.png')
获取当前标签页的源码
browser.page_source
刷新当前标签页
browser.refresh()
返回上一个页面
browser.back()
切换标签页
all_handles=browser.window_handles
browser.switch_to.window(all_handles[0])
切换Iframe
browser.switch_to_frame(self.browser.find_element_by_id('inner-iframe'))
查找单个元素
根据标签的class属性查找标签
browser.find_element_by_class_name('cs')
根据标签的name属性查找标签
browser.find_element_by_name('cs')
根据标签的id属性查找标签
browser.find_element_by_id('cs')
根据标签的名称查找标签
browser.find_element_by_tag_name('cs')
根据xpath查找标签
browser.find_element_by_xpath()
根据CSS选择器查找标签
browser.find_element_by_css_selector()
查找多个元素
在element后面加s即可
对于标签对象
.click() #点击标签
.clear() #清空标签
text获取标签的值
.get_attribute("src") #获取标签的属性值
.send_keys('内容') #往标签里面输入内容
关闭浏览器
browser.quit()