关于selenium:Selenium-WebDriver-API-学习笔记三浏览器控制

34次阅读

共计 2156 个字符,预计需要花费 6 分钟才能阅读完成。

读了虫师《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 后加 s
find_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 webdriver
import os

driver = 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 webdriver
import os
fp=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

正文完
 0