一、操作浏览器的方法:
from selenium import webdriver
b= webdriver.Firefox()
打开一个浏览器;
b.get("浏览器地址")
b.title:得到当前打开网页的标题
b.current_url:得到当前打开网页的url地址
b.maximize_window ():浏览器最大化
判断是否正确:
采用关键字:
标题:'关键字' in b.title
url:'关键字' in b.current
浏览器回退:b.back()
二、定位元素的方法:
id b.find_element_by_id()
name b.find_element_by_name()
class name b.find_element_by_class_name()
tag name b.find_element_by_tag_name()
link text b.find_element_by_link_text()
partial link text b.find_element_by_partial_link_text()
xpathb.find_element_by_xpath()
css selector b.find_element_by_css_selector()
三、定位到元素后的基本操作
元素.clear() :清楚元素内容
元素.send_keys() 模拟按键输入
元素.click() 点击
元素.submit() 提交表单
四、定位到元素后查看元素属性
元素.get_attribute('属性名')
五、xpath定位元素的方法:
/xxx :选取根节点
/xxx/yyy: 根据绝对路劲选择元素
//xxx:整个文档扫描,找到所有xxx元素
//xxx/yyy:所有父元素为xxx的yyy元素
.:选取当前节点的父元素节点
..:选取父元素地址
//xxx[@id]:选取所有xxx元素中有id属性的元素
//xxx[@id=yyy]:选取所有xxx元素中id属性为yyy的元素
复杂选择过程:
//*[count(xxx)=2] :统计xxx元素个数=2的节点
//*[local-name()='xxx'] :找到tag为xxx的元素
//*[starts-with(local-name(),'x')]:找到所有tag以x开头的元素
//*[contains(local-name(),'x')]:找到所有tag包含x的元素
//*[string-length(local-name())=3]:找到所有tag 长度为3的元素
//xxx|//yyy:多个路径查找
last():获取符合条件的最后一个元素
六、鼠标和键盘事件(ActionChains类与输入事件)
1、from selenium.webdriver.common.action_chains import ActionChains:导入模块
七、多个窗口之间的切换
1、d.window_handles:查看所有的浏览器句柄
2、d.current_window_handle:查看当前浏览器句柄
3、d.switch_to_window(d.window_handles[索引]):切换句柄
八、测试脚本中的等待方法(如果找得到就可以立马返回,如果找不到则在超时时间内会继续找,知道超时了就报错)
1、采用time.sleep()方法等待
2、采用selenium中的等待方法
1)implicitly_wait():设置webdriver等待时间
2)WebDriverWait:等待条件满足或者超时后退出from selenium.webdriver.support.ui import WebDriverWait
http://blog.csdn.net/huilan_same/article/details/52544521
def get_ele_times(driver,times,func):
return WebDriverWait(driver,times).until(func)
调用此方法:
ele_login = get_ele_times(d,10, lambda d:d.find_element_by_link_text(login_text))
九、alert对话框的处理
switch_to_alert():切到alert,返回一个alert对象
accept:确认
dismiss:取消
send_keys():有输入框才能使用,否则报错