下载并安装
selenium 安装:cmd中执行 pip install -i https://pypi.douban.com/simple selenium
执行完成后 pip show selenium 可查看安装是否成功
安装浏览器驱动,查看当前浏览器的版本
选择合适的驱动并下载 chrome的链接:https://chromedriver.storage.googleapis.com/index.html
输入python代码,弹出chrome浏览器即标识安装成功
fromseleniumimportwebdriver
browser = webdriver.Chrome()
脚本组成
1.头部导入需要的包
2.获取浏览器驱动 webdriver.Chrome()
3.使用驱动对浏览器进行操作测试
4.关闭浏览器
图形验证码
使用input解决
inputs = driver.find_elements_by_tag_name('input')
foriininputs:
ifi.get_attribute('placeholder') =="验证码":
a = input("请输入验证码")
i.send_keys(a)
常用API
定位
driver.find_element_by_id("") #定位根据id,id是全局唯一的
driver.find_element_by_name("") #定位根据name
driver.find_element_by_class_name("") #定位根据classname,已重复不建议使用
driver.find_element_by_link_text("") #使用链接进行定位
driver.find_element_by_tag_name("") #使用标签定位,且标签必须唯一
driver.find_element_by_xpath("") #使用xpath定位,一定可以定位到元素
driver.find_element_by_css_selector("") #使用css selector定位
鼠标事件
click() #点击定位到的对象
driver.find_element_by_id("details-button").click()
submit() #提交表单,类似click(),当操作对象的type是submit时可以使用
driver.find_element_by_id("details-button").submit()
#from selenium.webdriver.common.action_chains import ActionChains ActionChains 类
context_click() #右击
su1 = driver.find_element_by_id("su") #先定位好元素
ActionChains(driver).context_click(su1).perform()
double_click() #双击
ActionChains(driver).double_click(su1).perform()
drag_and_drop() #拖动
target = driver.find_element_by_id("su")
title = driver.find_element_by_css_selector("#\31 > h3 > a")
ActionChains(driver).drag_and_drop(title, target).perform()
move_to_element() #移动,鼠标移至
ActionChains(driver).move_to_element(target).perform()
键盘事件
send_keys("") #在定位的对象上输入内容
driver.find_element_by_id("password").send_keys("admin")
clear() #清除目标对象的输入内容
driver.find_element_by_id("password").clear()
send_keys(Keys.TAB) #键盘Tab from selenium.webdriver.common.keys import Keys
send_keys(Keys.ENTER) #键盘回车
send_keys(Keys.CONTROL,'A') #键盘ctrl+a,全选
send_keys(Keys.CONTROL,'X') #键盘ctrl+x,剪切
send_keys(Keys.CONTROL,'C') #键盘ctrl+c,复制
send_keys(Keys.CONTROL,'V') #键盘ctrl+v,粘贴
其他事件
text() #获取目标对象的文本信息
text = driver.find_element_by_xpath("//*[@id='root']/section/header/div[1]/ul/li[2]/span/a").text
print(text+" ")
time.sleep(500) #固定等待500秒 import time
title = driver.title #打印当前页面title
url = driver.current_url #打印当前页面url
print("title:"+title,"url:"+url)
get("https://www.baidu.com/") #打开浏览器至xx网址
quit() #关闭浏览器
浏览器操作
driver.maximize_window() #浏览器最大化
driver.minimize_window() #浏览器最小化
driver.set_window_size(400,500) #设置浏览器大小宽400高500
driver.back() #浏览器返回上一个页面
driver.forward() #浏览器到下一个页面
#浏览器滚动条到最下方
js = "var q=document.documentElement.scrollTop = 10000"
driver.execute_script(js)
#浏览器滚动条到最上方
js="var q=document.documentElement.scrollTop = 0"
driver.execute_script(js)