读了虫师《Selenium 2自动化测试实战 基于Python语言》一书,感触颇深,内容十分丰盛。现整顿下来,供后续学习参考应用。本次次要整顿的是元素浏览器管制之二。内容在“Selenium WebDriver API 学习笔记(二):浏览器管制”根底上增加。
9.设置元素期待
①显式期待:WebDriverWait(driver,poll_fequency=0.5,ignored_exceptions=None)②隐式期待:driver.implicitly_wait(time) time可自定义③sleep休眠:sleep(time) time可自定义
10.定位一组元素
在之前定位单个元素的element后加sfind_elements_by_id(); find_elements_by_name(); find_elements_by_class_name(); find_elements_by_tag_name(); find_elements_by_link_text(); find_elements_by_partial_link_text(); find_elements_by_xpath(); find_elements_by_css_selector();
11.多表单切换
driver.swtich_to.frame()
12.多窗口切换
driver.switch_to.widow() 用于切换到相应的窗口current_window_handle 获取以后窗口句柄window_handles 返回所有窗口的句柄到以后会话
13.正告框解决
text:返回 alert/confirm/prompt中的文字信息accept(): 承受现有正告框dismiss(): 遣散现有正告框send_keys(keysToSend): 发送文本至正告框
14.上传文件
一般上传:将本地文件的门路作为一个值放在input标签中,通过form表单将这个值提交给服务器
插件上传:指基于Flash,JavaScript或Ajax等技术实现上传性能
①send_keys()如:from selenium import webdriverimport osdriver = webdriver.Chrome()file_path='file:///' + os.path.abspath('upfile.html')driver.get(file_path)#定位上传按钮,增加本地文件driver.find_element_by_name("file").send_keys('D:\\upload_file.txt')driver.quit()②AutoIt实现上传 下载应用http://www.autoitscript.com/site/
15.下载文件
from selenium import webdriverimport osfp=webdriver.Firefoxprofile()fp.set_preference("browser.download.folderList",2)#0是默认门路,2是指定门路fp.set_preference("browser.download.manager.showWhenStarting",False)#是否显示开始fp.set_preference("browser.download.dir",os.getcwd())#用于指定所下载的文件的目录fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/octet-stream")#下载文件的类型driver=webdriver.Firefox(firefox_profile=fp)driver.get("http://pypi.Python.org/pypi/selenium")driver.find_element_by_partial_link_text("selenium-2").click()
16.操作Cookie
WebDriver操作cookie的办法:get_cookies(): 获取所有的cookie信息get_cookie(name): 返回字典的key为“name”的cookie信息add_cookie(cookie_dict):增加cookie。cookie_dict为字典对象,必须有name,value值delete_cookie(name,optionsString):删除cookie信息delete_all_cookies():删除所有的cookie信息
17.调用JavaScipt
调整浏览器滚动条地位window.scrollTo(右边距,上边距)
18.解决HTML5的视频播放
load(),play(), pause() 加载,播放,暂停
19.窗口截图
driver.get_screenshot_as_file("D:\\xxxxx")#截取以后窗口,并指定截图图片的保留地位
20.敞开窗口
quit():退出相干程序和敞开所有窗口;close():敞开以后窗口
21.验证码的解决
①去掉验证码②设置万能验证码③验证码辨认技术④记录cookie