Selenium自动化(等待 / 弹窗处理 / 滚动条 / 多窗口处理 / Cookie处理)-------详细

Selenium自动化(等待 / 弹窗处理 / 滚动条 / 多窗口处理 / Cookie处理)

一、等待

设置休眠时间(休眠3秒):

time.sleep(3)

智能等待(隐式等待):(一般放在打开项目的前面一行)

driver.implicitly_wait(10)

显示等待(不常用):

from selenium.webdriver.support.ui import WebDriverWait
WebDriverWait(5)

 

二、弹窗处理(提示框之类的)

alert / confirm / prompt 处理

text:返回alert/confirm.prompt中的文字内容
accept:点击确定按钮
dismiss:点击取消按钮,如果有取消按钮的话
send_keys:向prompt中输入文字

如:(删除商品时点击确定)

dri = driver.find_element_by_css_selector('##########')
dri[1].click()
time.sleep(3)
a = driver.switch_to.alert
a.accept()

用法:

driver.find_element_by_id("alert").click() 
time.sleep(3) 
driver.switch_to_alert().accept()    # 点击弹窗的确定按钮
driver.find_element_by_id("confirm").click() 
time.sleep(3) 
driver.switch_to_alert().dismiss()   # 点击弹窗的取消按钮
driver.find_element_by_id("prompt").click() 
time.sleep(3) 
driver.switch_to_alert().send_keys("123456")  # 向弹窗prompt输入条中输入文字
time.sleep(3) 
driver.switch_to_alert().accept() 

备注:send_keys这个方法在chromedriver中输入后不会显示。
 

三、滚动条
For a in range(5)   #6次  
Js="document.documentElement.scroIITop=document.documentElement.scroIITop+100"
# +100表示幅度
	driver.execute_script(js)   #(调用执行)
	time.sleep(3)
time.sleep(3)

 

四、多窗口处理
dangqian = driver.current_window_handle   # 获取当前窗口句柄
# 再定位元素进行操作(点击等)
time.sleep(3)
suoyou = driver.window_handles   # 获取所有窗口句柄
for hands in suoyou:
    if hands != dangqian:
        driver.switch_to.window(hands)   # 通过句柄跳转窗口
driver.close()  # 关闭新打开的窗口
driver.switch_to.window(dangqian)   # 回到之前的窗口

 

五、Cookie处理
#第一段代码
#登录前获取cookies
ck_list=driver.get_cookies()
for ck in ck_list:
   print(ck)
time.sleep(20)
print("----------手工登录----------")   #(手动输入用户名密码)
#登录后获取cookie
for ck in ck_list:
   print(ck)

#第二段代码  (name与value用第一段代码打印出来的两个)
driver.add_cookie({'name': 'xxxxxxxx','value': 'xxxxxxxxxxx'}) 
driver.add_cookie({'name': 'xxxxxxxxxxx','value': 'xxxxxxxxxxx'}) 
ck_list=driver.get_cookies()
for ck in ck_list:
    print(ck)
time.sleep(3)
driver.get("http:\\登录成功的网页")

你可能感兴趣的:(自动化测试,Selenium,测试,软件测试,测试工程师,selenium,web,python)