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

举报
虫无涯 发表于 2023/01/12 13:32:44 2023/01/12
【摘要】 读了虫师《Selenium 2自动化测试实战 基于Python语言》一书,感触颇深,内容非常丰富。现整理下来,供后续学习参考使用。本次主要整理的是元素浏览器控制之二。内容在“Selenium WebDriver API 学习笔记(二):浏览器控制”基础上添加。9.设置元素等待①显式等待:WebDriverWait(driver,poll_fequency=0.5,ignored_except...

读了虫师《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
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。