Selenium 3----警告框處理+下拉框選擇
阿新 • • 發佈:2019-03-26
driver port lec clas ane 百度搜 style 文字 cti
警告框處理
在WebDriver中處理JavaScript所生成的alert、confirm以及prompt十分簡單,具體做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt,然後使用text/accept/dismiss/ send_keys等方法進行操作。
-
text:返回 alert/confirm/prompt 中的文字信息。
-
accept():接受現有警告框。
-
dismiss():解散現有警告框。
-
send_keys(keysToSend):發送文本至警告框。keysToSend:將文本發送至警告框。
如下,百度搜索設置彈出的窗口是不能通過前端工具對其進行定位的,這個時候就可以通過switch_to_alert()方法接受這個彈窗。
from selenium import webdriver # 引入 ActionChains 類 from selenium.webdriver.common.action_chains import ActionChains #導入提供鼠標操作的 ActionChains 類,也可from selenium.webdriver import ActionChains import time driver = webdriver.Chrome() #設置隱式等待時間為10秒 driver.implicitly_wait(10) driver.get(‘https://www.baidu.com‘) #鼠標懸停至“設置”鏈接 link = driver.find_element_by_link_text(‘設置‘) ActionChains(driver).move_to_element(link).perform() #打開搜索設置 driver.find_element_by_link_text(‘搜索設置‘).click() #保存設置 driver.find_element_by_class_name("prefpanelgo").click() time.sleep(2) #接受警告框 driver.switch_to.alert.accept() #switch_to_alert()方法獲取當前頁面上的警告框,並使用accept()方法接受警告框。 driver.quit()
下拉框選擇
WebDriver提供了Select類來處理下拉框。 如百度搜索設置的下拉框,如下:
Select類用於定位select標簽。
select_by_value() 方法用於定位下接選項中的value值。
from selenium import webdriver from selenium.webdriver.support.select import Select from time import sleep driver = webdriver.Chrome() #設置隱式等待時間為10秒 driver.implicitly_wait(10) driver.get(‘https://www.baidu.com‘) #鼠標懸停至“設置”鏈接 driver.find_element_by_link_text(‘設置‘).click() sleep(1) #打開搜索設置 driver.find_element_by_link_text("搜索設置").click() sleep(2) #搜索結果顯示條數 sel = driver.find_element_by_xpath("//select[@id=‘nr‘]") Select(sel).select_by_value(‘50‘) #顯示50條 Select類用於定位select標簽,select_by_value() 方法用於定位下接選項中的value值。 driver.quit()
Selenium 3----警告框處理+下拉框選擇