UI自動化之特殊處理二(彈框\下拉框\選項\文件上傳)


彈框\下拉框\選項\文件上傳也是一些比較特殊的操作

 

目錄

1、彈框

2、下拉框

3、選項

4、文件上傳

 

1、彈框

彈框有三種形式,value為alert、confirm、prompt三種的彈框,第一個僅可點擊確認,第二個可點擊取消和確認,第三個可以輸入內容再點擊取消或者確認

alert:僅需要定位到alert上,然后再確認

m= driver.switch_to_alert()
m.accept()

 confirm:定位到alert,點擊取消或者確認

m= driver.switch_to_alert()
m.accept() #確認
m.dismiss() #取消,取消和確認選一種

 prompt:定位到alert,輸入內容,再取消或者確認

m= driver.switch_to_alert()
m.send_keys("qq")
m.accept() #確認
m.dismiss() #取消,取消和確認選一種

  

2、下拉框

可通過一次定位和二次定位2種方法來定位

一次定位:

driver.find_element_by_xpath(".//[@id='nr']/option[3]").click()

 二次定位:

第一種,先定位到下拉框,再用xpath定位到下拉框的值

driver.find_element_by_id("nr").find_element_by_xpath("//option[@value='50']").click() 

第二種:用select模塊二次定位

from selenium.webdriver.support.select import Select
'''通過索引'''
m = driver.find_element_by_id("nr")
Select(m).select_by_index(0)
'''通過value'''
m = driver.find_element_by_id("nr")
Select(m).select_by_value("20")
'''通過text'''
m = driver.find_element_by_id("nr")
Select(m).select_by_visible_text("每頁顯示 50 條")

3、選項

選項分為單選框和復選框

001、單選框:type=radio

直接找到,然后點擊

driver.find_element_by_xpath(".//*[@type='radio']").click()

002、復選框:type=checkbox

想要全部點擊,需要用find_elements方法,然后再循環點擊

checkboxs=driver.find_elements_by_xpath(".//*[@type='checkbox']")
for i in checkboxs:
   i.click()

003、是否選中

is_selected(),為True時,為選中,為False,沒選中,用來測試點擊的結果

driver.find_element_by_xpath(".//*[@type='radio']").click()
m=driver.find_element_by_xpath(".//*[@type='radio']").is_selected()
print m

  

4、文件上傳

文件上傳分為2種,一種type為file,一種不為file

001、type=file的,直接使用send_keys()

driver.find_element_by_id("qq").send_keys(r"d:\qq.png")

002、type非file的,借助第三方模塊

第一步:安裝Sendkeys模塊

pip install SendKeys

 

第二步:應用

import SendKeys

#SendKeys方法輸入內容
SendKeys.SendKeys(r"文件路徑")#發送文件地址
time.sleep(1)
SendKeys.SendKeys("{ENTER}")#發送回車鍵
time.sleep(1)
#SendKeys.SendKeys("{ENTER}")#如果是電腦搜索輸入法,需要多一次回車

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM