官方文档:http://selenium-python-docs-zh.readthedocs.io/zh_CN/latest/
模拟浏览器中网页的跳转,输入,点击,下拉
-安装:
pip install selenium
chromedriver : http://chromedriver.storage.googleapis.com/index.html
(谷歌若是最新版的就安装v2.36)
声明浏览器与访问页面
注:selenium支持很多浏览器,一般在测试阶段使用Chrome(需要下载Chromedriver,并配置环境变量);在运行阶段使用PhantomJS(需要配置环境变量),该浏览器可以无界面测试,网络截屏,页面自动化。
from selenium import webdriver
driver=webdriver.Chrome() #声明浏览器对象
driver.get("http://www.baidu.com") #通过浏览器打开百度页面
print(driver.page_source) #得到网页html信息
driver.close() #关闭浏览器
导航
-页面交互(向文本框和文本域输入内容)
#获取一个元素
element=driver.find_element_by_id("pass_id")
#通过send_keys方法输入文本信息
element.send_keys("some text")
#文本内容不会自动清除,因此避免干扰下次的操作需要清楚
element.clear()
-填充表单(下拉选项框,并选中)
#选中特定的选项---select方法
from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_name('name'))
select.selct_by_index(index)
select.select_by_visible_text("text")
select.select_by_value(value)
#取消选中项--select.deselect_all方法
select = Select(driver.find_element_by_id('id'))
select.deselect_all()
#提交表单 .click方法
# 假设存在一个提交按钮的ID 为"submit"
driver.find_element_by_id("submit").click()
-拖拽(将一个元素拖拽指定的距离或到另一个元素上)
#ActionChains方法
from selenium.webdriver import ActionChains
element = driver.find_element_by_name("source")
target = driver.find_element_by_name("target")
action_chains = ActionChains(driver)
action_chains.drag_and_drop(element,target).perform()
-在窗口和框架间移动
#将框架切换到另一个框架
driver.switch_to_