弹出框有两种:
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()