彈框\下拉框\選項\文件上傳也是一些比較特殊的操作
目錄
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}")#如果是電腦搜索輸入法,需要多一次回車
