1. 程式人生 > >Selenium + Python 警告框處理

Selenium + Python 警告框處理

wait prompt perf firefox select cli 百度 end nbsp

這幾天在學WebDriver的警告框處理,具體做法是使用switch_to_alert()方法定位到alert/confirm/prompt,然後使用text/accept/dismiss/send_keys等方法進行操作。

但是卻一直卡在接受警告框這一步上,在書上給出的例子是百度首頁的搜索設置彈出窗口,可是代碼運行後,總是在報錯:selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: 搜索設置(“搜索設置”此處可能是其他定位信息)。後來想想,可以能百度首頁有東西改了,我試試在搜索頁面進行同樣的操作,結果就可以了!

附上代碼:

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

import time

driver = webdriver.Firefox( )

driver.implicitly_wait (10)

driver.get ("http://www.baidu.com")

driver.find_element_by_id ("kw").send_keys("selenium")

driver.find_element_by_id ("su").click( )

#鼠標懸停至“設置”鏈接

#setting = driver.find_element_by_css_selector (‘.pf‘)

setting = driver.find_element_by_link_text ("設置")

ActionChains(driver).move_to_element(setting).perform( )

#打開搜索設置

driver.find_element_by_link_text ("搜索設置").click( )

#driver.find_element_by_class_name ("setpref").click( )

time.sleep(2)

# 保存設置

driver.find_element_by_class_name (‘prefpanelgo‘).click( )

time.sleep(2)

#接受警告框

driver.switch_to_alert ( ).accept( )

driver.quit( )

Selenium + Python 警告框處理