写点什么

Selenium WebDriver API 学习笔记(三):浏览器控制

作者:虫无涯
  • 2023-02-17
    陕西
  • 本文字数:1395 字

    阅读完需:约 5 分钟

读了虫师《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 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 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
复制代码


发布于: 刚刚阅读数: 3
用户头像

虫无涯

关注

专注测试领域各种技术研究、分享和交流~ 2019-12-11 加入

CSDN测试领域优质创作者 | CSDN博客专家 | 阿里云专家博主 | 华为云享专家 | 51CTO专家博主

评论

发布
暂无评论
Selenium WebDriver API 学习笔记(三):浏览器控制_Python_虫无涯_InfoQ写作社区