一、Select模塊(index)
1.導入Select模塊。直接根據屬性或索引定位
2.先要導入select方法:from selenium.webdriver.support.select import Select
3.然后通過select選項的索引來定位選擇對應選項(從0開始計數),如選擇第三個選項:select_by_index(2)
3.然后通過select選項的索引來定位選擇對應選項(從0開始計數),如選擇第三個選項:select_by_index(2)
select_by_index() :通過索引定位
select_by_value() :通過value值定位
select_by_visible_text() :通過文本值定位
deselect_all() :取消所有選項
deselect_by_index() :取消對應index選項
deselect_by_value() :取消對應value選項
deselect_by_visible_text() :取消對應文本選項
first_selected_option() :返回第一個選項
all_selected_options() :返回所有的選項
二、select遇到的坑
1.在操作百度設置里面,點擊“保存設置”按鈕時,alert彈出框沒有彈出來。(Ie瀏覽器是可以的)
2.分析原因:經過慢慢調試后發現,在點擊"保存設置"按鈕時,由於前面的select操作后,失去了焦點
3.解決辦法:在select操作后,做個click()點擊操作
代碼整理如下:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
import time as t
driver = webdriver.Chrome()
url = "https://www.baidu.com"
driver.get(url)
driver.implicitly_wait(10)
# 鼠標移動到“設置”按鈕
mouse = driver.find_element_by_link_text("設置")
ActionChains(driver).move_to_element(mouse).perform()
driver.find_element_by_link_text("搜索設置").click()
# 通過text:select_by_visible_text()
s = driver.find_element_by_id("nr")
Select(s).select_by_visible_text("每頁顯示50條")
t.sleep(3)
s.click()
driver.find_element_by_link_text("保存設置").click()
t.sleep(2)
#獲取alert彈框
t = driver.switch_to_alert()
print(t.text)
t.accept()
# # 分兩步:先定位下拉框,再點擊選項
# s = driver.find_element_by_id("nr")
# s.find_element_by_xpath("//option[@value='50']").click()
# # 另外一種寫法
# driver.find_element_by_id("nr").find_element_by_xpath("//option[@value='50']").click()
# # 直接通過xpath定位
# driver.find_element_by_xpath(".//*[@id='nr']/option[2]").click()
# # 通過索引:select_by_index()
# s = driver.find_element_by_id("nr")
# Select(s).select_by_index(2)
# # 通過value:select_by_value()
# s = driver.find_element_by_id("nr")
# Select(s).select_by_value("20")
參考鏈接:https://www.cnblogs.com/yoyoketang/p/6128636.html