1、alert警告框
以百度搜索设置为例,在进行搜索设置后点击“保存设置”按钮,弹出alert对话框,如下图所示:
实现代码:
from selenium import webdriver
import time as t
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
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.maximize_window()
driver.get("http://www.baidu.com")
t.sleep(3)
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").send_keys(Keys.ENTER)
# 显式等待,待元素定位
WebDriverWait(driver,10).until(ec.presence_of_element_located((By.ID,"kw")))
# 鼠标悬停
mouse = driver.find_element_by_name("tj_settingicon")
ActionChains(driver).move_to_element(mouse).perform()
driver.find_element_by_link_text('搜索设置').click()
# # 隐式等待
# driver.implicitly_wait(10)
t.sleep(5)
# 定位下拉框
select = driver.find_element_by_name("NR")
# # 以索引的方式定位
# Select(select).select_by_index(2)
# print("下拉框选择的最新条数是:",select.get_attribute('value'))
# 以value定位
# Select(select).select_by_value("10")
# print("下拉框选择的最新条数是:",select.get_attribute('value'))
# 以文本定位
Select(select).select_by_visible_text("每页显示10条")
print("下拉框选择的最新条数是:",select.get_attribute('value'))
t.sleep(3)
driver.find_element_by_xpath('//*[@id="se-setting-5"]/label[1]').click()
t.sleep(4)
# 判断是否选中is_selected()
s = driver.find_element_by_xpath('//*[@id="se-setting-5"]/label[1]').is_selected()
if s == False:
driver.find_element_by_xpath('//*[@id="se-setting-5"]/label[1]').click()
print(s)
else:
print(True)
driver.find_element_by_css_selector("#gxszButton > a.prefpanelgo").click()
# alert弹框
print("alert弹出框的文本信息为:{0}".format(driver.switch_to.alert.text)) # 获取弹出框的文本信息
driver.switch_to.alert.accept()
driver.quit()
ps:driver.switch_to.alert后不加(),否则会出现TypeError
accept()表示确认
dismiss()表示取消
2、confirm确认框
显示:
实现代码:
from selenium import webdriver
import time
url = 'file:///C:/Users/yl8/Desktop/链接.html'
driver = webdriver.Chrome()
driver.get(url)
time.sleep(4)
# confirm操作
driver.find_element_by_id("confirm").click()
time.sleep(2)
t = driver.switch_to.alert
print(t.text)
t.dismiss()
3、prompt对话框
类型:
实现测试代码:
from selenium import webdriver
import time
url = 'file:///C:/Users/yl8/Desktop/链接.html'
driver = webdriver.Chrome()
driver.get(url)
time.sleep(4)
# prompt操作
driver.find_element_by_id("prompt").click()
time.sleep(2)
t = driver.switch_to.alert
print(t.text)
t.send_keys("hello selenium")
t.accept()