0
点赞
收藏
分享

微信扫一扫

Python-Selenium WebUI自动化 Selenium-API整理(下)

目录

一、前言

二、Selenium-API整理(下)

7.设置等待时间

8.定位frame中的元素

9.浏览器多窗口

10.alert/confirm/prompt 处理

11.下拉框处理

12.文件上传

13.cookie消息处理


一、前言

        笔记已时过境迁5年,Selenium或许不是再当时那个少年,文章仅记录过往整理笔记供学习参考思想和笔记整理技巧。

二、Selenium-API整理(下)

7.设置等待时间


#导入time包 

import time



#添加智能等待 

driver.implicitly_wait(30



#添加固定休眠时间 

time.sleep(5)





#导入WebDriverWait 包 

from selenium.webdriver.support.ui import WebDriverWait 



#详细格式如下:

WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)



driver - WebDriver 的驱动程序(Ie,Firefox,Chrome 或远程)



timeout - 最长超时时间,默认以秒为单位



poll_frequency- 休眠时间的间隔(步长)时间,默认为 0.5



ignored_exceptions - 超时后的异常信息,默认情况下抛 NoSuchElementException 异常。





element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id(“someId”)) is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)). until_not(lambda x: x.find_element_by_id(“someId”).is_displayed()) 

8.定位frame中的元素


driver.switch_to.frame("mainscreen")#切入到id="mainscreen"的嵌套中

driver.switch_to.default_content()#这句话是退出原来的嵌套回到原来的主文档

driver.switch_to.parent_frame()返回上一级frame

9.浏览器多窗口


#获得当前窗口 

nowhandle=driver.current_window_handle

#获得所有窗口

allhandles=driver.window_handles



for handle in allhandles:

    if handle != nowhandle: 

        driver.switch_to_window(handle) #到最后窗口口



        driver.close()#关闭最后窗口

10.alert/confirm/prompt 处理


driver.switch_to_alert().text #获取网页上的警告信息

driver.switch_to_alert().accept #接收警告信息 

driver.switch_to_alert().dismiss #取消对话框(如果有的话) 

driver.switch_to_alert().send_keys("xx") #输入值(如果有的话) 



11.下拉框处理


from selenium.webdriver.support.ui import Select

Select(driver.find_element_by_id('language')).select_by_value(Value)

12.文件上传

driver.find_element_by_name("file").send_keys('D:\\selenium_use_case\upload _file.txt')
#send_keys()发送一个本地的文件路径。从而达 到上传文件的目的。

13.cookie消息处理


driver.get_cookies() # 获得所有cookie信息

driver.get_cookie(name)# 返回特定 name 有 cookie 信息

driver.add_cookie({'name':'key-aaaaaaa', 'value':'value-bbbb'})#向cookie的name 和value添加会话信息。 

driver.delete_cookie("CookieName"

driver.delete_cookie("CookieName") #删除特定(部分)的 cookie 信息

driver.delete_all_cookies()# 删除所有cookie 

举报

相关推荐

0 条评论