下拉框+彈窗處理
一、下拉框
針對下拉框,selenium提供了Select類來處理
from selenium.webdriver.support.select import Select
1、實例化下拉框
- 定位到下拉框
rp = chrome.find_element_by_name('rp')
- 實例化Select類
select = Seletc(rp)
2、定位
- 索引(從0開始)定位(select_by_index())
#定位到下拉框的第3個元素
select.seletc_by_index(2)
- value定位(select_by_value())
#定位到下拉框value='25'的元素
select.seletc_by_value(‘25’)
- 文本定位(select_by_visible_text())
#定位到下拉框文本為’30‘的元素
select.select_by_visible_text(‘30’)
二、彈窗
針對彈窗,selenium提供了Alert類來處理
from selenium.webdriver.common.alert import Alert
1、告警框
使用accept()確認
#!/usr/bin/python3
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.alert import Alert
import time
chrome = webdriver.Chrome()
chrome.maximize_window()
chrome.get('https://www.baidu.com')
shezhi = chrome.find_element_by_id('s-usersetting-top')
ActionChains(chrome).move_to_element(shezhi).perform()
chrome.find_element_by_link_text('搜索設置').click()
time.sleep(2)
chrome.find_element_by_link_text('保存設置').click()
#獲取告警框內容
test = chrome.switch_to_alert().text
print(test)
#點擊彈框中的確認
chrome.switch_to_alert().accept()
time.sleep(3)
結果:
已經記錄下您的使用偏好
2、確認框
使用accept()確認,使用dismiss()拒絕
#!/usr/bin/python3
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.alert import Alert
import time
chrome = webdriver.Chrome()
chrome.maximize_window()
chrome.get('https://www.w3school.com.cn/tiy/t.asp?f=js_confirm')
chrome.switch_to_frame('iframeResult')
chrome.find_element_by_xpath('/html/body/button').click()
#獲取確認框內容
test = chrome.switch_to_alert().text
print(test)
#點擊確認
# chrome.switch_to_alert().accept()
#點擊拒絕
chrome.switch_to_alert().dismiss()
time.sleep(3)
結果:
Press a button!
3、消息對話框
使用send_keys()在消息對話框輸入內容
#!/usr/bin/python3
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.alert import Alert
import time
chrome = webdriver.Chrome()
chrome.maximize_window()
chrome.get('https://www.w3school.com.cn/tiy/t.asp?f=js_prompt')
chrome.switch_to_frame('iframeResult')
chrome.find_element_by_xpath('/html/body/button').click()
#獲取消息框內容
# test = chrome.switch_to_alert().text
# print(test)
#消息框里輸入內容
chrome.switch_to_alert().send_keys('靜心得意')
# 確認
chrome.switch_to_alert().accept()
time.sleep(3)
結果: