from selenium import webdrivercss
import timeweb
from selenium.webdriver.support.ui import WebDriverWait瀏覽器
from selenium.webdriver.support import expected_conditions as ECapp
from selenium.webdriver import firefoxcurl
from selenium.webdriver.common.keys import Keyspost
#firefoxdriverpath=os.path.abspath("/Applications/Firefox.app/Contents/MacOS/firefoxdriver")測試
#os.environ["webdriver.firefox.driver"]=firefoxdriverpathui
#driver=webdriver.Firefox(firefoxdriverpath)url
#driver=webdriver.Firefox()spa
driver=webdriver.Firefox()
driver.get("http://www.baidu.com")
#點擊打開搜索設置
driver.find_element_by_css_selector("#u1 > a[name='tj_settingicon']").click()
driver.find_element_by_css_selector("a.setpref").click()
#點擊保存設置
driver.implicitly_wait(10)
#driver.find_element_by_css_selector("div#gxszButton a.prefpanelgo[href='#']").click()
driver.find_element_by_link_text("保存設置").click()
time.sleep(2)
#driver.find_element_by_css_selector("div#gxszButton a.prefpanelgo[href='#']")
#獲取網頁上的警告信息
#alert=driver.switch_to_alert().text()
if EC.alert_is_present:
print("Alert exists")
alert=driver.switch_to_alert()
print (alert.text)
alert.accept()
print("Alert accepted")
else:
print("NO alert exists")
'''
try:
WebDriverWait(driver,10).until(EC.alert_is_present(),
'Timed out waiting for PA creation ' +
'confirmation popup to appear.')
print("0")
alert=driver.switch_to_alert().text()
print("1")
text=alert.text()
print(text)
except TimeoutException:
print("no alert")
#接收警告信息
#alert.accept()
#print("3")
#獲得文本信息並打印
#alert=driver.switch_to_alert()
#print("5")
#取消對話框(若是有的話)
#alert=driver.switch_to_alert()
#alert.dismiss()
#輸入值(若是有的話)
#alert=driver.switch_to_alert()
#alert.send_keys("xxx")
'''
driver.quit()
若是switch_to_alert不工做,最重要的問題就是,有1個以上的瀏覽器開啓,致使alert抓取不到。而且在使用switch_to_alert的時候時間會比較長一些,須要等待一下子才能完成accept等的工做。
緣由是由於多個瀏覽器開啓致使沒法準肯定位到哪一個瀏覽器上,例如同時開啓了兩個firefox的瀏覽器,webdriver就沒法定位到要測試的那個瀏覽器上,也就沒法正常的獲取到測試的那臺瀏覽器上的alert窗口。