1. 程式人生 > >Selenium 3----警告框處理+下拉框選擇

Selenium 3----警告框處理+下拉框選擇

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----警告框處理+下拉框選擇