驱动下载地址
https://registry.npmmirror.com/binary.html?path=chromedriver/
pip安装
pip install selenium
样例
#-*- coding:utf-8 -*- import platform import time from selenium import webdriver from selenium.webdriver.common.keys import Keys headers='''user-agent="MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22;
CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"''' base_url="https://www.baidu.com" options = webdriver.ChromeOptions() options.add_argument(headers) # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败 if platform.system().upper()=="LINUX": path="/home/boye/project/seleniumCode/chromedriver" options.add_argument('--headless') driver = webdriver.Chrome(executable_path=path,chrome_options=options) else: driver = webdriver.Chrome(chrome_options=options) driver.implicitly_wait(10) # seconds driver.get(base_url) #打开网页 print(driver.title) time.sleep(2) driver.quit()
元素操作
#元素定位 find_element #通过指定方法查找指定的一个元素(需指定两个参数) find_element_by_class_name #通过Class name查找指定的一个元素 find_element_by_css_selector #通过CSS选择器查找指定的一个元素 find_element_by_id #通过ID查找指定的一个元素 find_element_by_link_text #通过链接文本获取指定的一个超链接(精确匹配) find_element_by_name #通过Name查找指定的一个元素 find_element_by_partial_link_text #通过链接文本获取指定的一个超链接(模糊匹配) find_element_by_tag_name #通过标签名查找指定的一个元素 find_element_by_xpath #通过Xpath语法来指定的一个元素 find_elements #通过指定方法查找所有元素(需指定两个参数) find_elements_by_class_name #通过Class name查找所有元素 find_elements_by_css_selector #通过CSS选择器查找所有元素 find_elements_by_id #通过ID查找所有元素 find_elements_by_link_text #通过链接文本获取所有超链接(精确匹配) find_elements_by_name #通过Name查找所有元素 find_elements_by_partial_link_text #通过链接文本获取所有超链接(模糊匹配) find_elements_by_tag_name #通过标签名查找所有元素 find_elements_by_xpath #通过Xpath语法来查找所有元素 #控制浏览器操作 driver.set_window_size(480, 800) #控制浏览器窗口大小 driver.back() # 后退 driver.forward() # 前进 driver.refresh() # 刷新 #点击和输入 driver.find_element_by_id("kw").clear() # 清除文本 driver.find_element_by_id("kw").send_keys("seleniumm") # 模拟按键输入 driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE) # 删除多输入的一个 m driver.find_element_by_id("su").click() # 单击元素 #常用的键盘操作 send_keys(Keys.BACK_SPACE) 删除键(BackSpace) send_keys(Keys.SPACE) 空格键(Space) send_keys(Keys.TAB) 制表键(Tab) send_keys(Keys.ESCAPE) 回退键(Esc) send_keys(Keys.ENTER) 回车键(Enter) send_keys(Keys.CONTROL,'a') 全选(Ctrl+A) send_keys(Keys.CONTROL,'c') 复制(Ctrl+C) send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X) send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V) send_keys(Keys.F1) #切换窗口 driver.switch_to_window("windowName") driver.switch_to_frame("frameName") #文件上传 driver.find_element_by_name("file").send_keys('D:\\upload_file.txt') # # 定位上传按钮,添加本地文件 #cookie操作 get_cookies(): 获得所有cookie信息 get_cookie(name): 返回字典的key为“name”的cookie信息 add_cookie(cookie_dict) : 添加cookie。“cookie_dict”指字典对象,必须有name 和value 值 #调用JavaScript代码 js="window.scrollTo(100,450);" driver.execute_script(js) # 通过javascript设置浏览器窗口的滚动条位置 #窗口截图 driver.get_screenshot_as_file("D:\\baidu_img.jpg") # 截取当前窗口,并指定截图图片的保存位置 关闭浏览器 close() 关闭单个窗口 quit() 关闭所有窗口