彈出框有兩種:
1.頁面彈出框
2.alert彈出框
1.頁面彈出框的操作
頁面彈出框是一個HTML頁面的元素,只不過是由用戶在頁面的操作觸發彈出的,所以執行這一類型的彈窗都是:
1.執行觸發操作之后,等待彈窗出現;
2.再定位彈出框的元素並操作
代碼示例如下:
from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver=webdriver.Chrome() driver.get("http://www.baidu.com") driver.maximize_window() #點擊登錄,執行觸發彈出框的操作 driver.find_element_by_xpath('//div[@id="u"]/*[@name="tj_login"]').click() #等待彈出框出現 WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID,"TANGRAM__PSP_10__footerULoginBtn"))) #再定位元素 driver.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn").click()
2.Alert彈出框操作
針對瀏覽器的彈出框我們一般使用以下方式:
1.使用switch_to方法切換到瀏覽器彈出框:driver.switch_to.alert
2.ALert類提供了一系列操作方法:
dismiss():否
accept():是
text:獲取彈出框的內容
send_keys():往彈出框輸入文本
代碼示例:
#1.等待彈出框出現 WebDriverWait(driver,10).until(EC.alert_is_present()) #2.從HTML頁面切換到alert中 alert=driver.switch_to.alert #3.獲取alert文本 text=alert.text #3.接受或取消彈窗 alert.accept() #alert.dismiss()