selenium webdriver基于Python系列文章 總結(jié) 6 alert/confirm/prompt處理

switch_to_alert() 用于獲取網(wǎng)頁(yè)上的警告信息。
text 返回 alert/confirm/prompt 中的文字信息瞧掺。
accept 點(diǎn)擊確認(rèn)按鈕耕餐。
dismiss 點(diǎn)擊取消按鈕,如果有的話(huà)辟狈。
send_keys 輸入值肠缔,這個(gè)alert\confirm沒(méi)有對(duì)話(huà)框就不能用了夏跷,不然會(huì)報(bào)錯(cuò)。

driver = driver driver.find_element_by_name("username").clear() 
driver.find_element_by_name("username").send_keys("") 
driver.find_element_by_name("password").clear() 
driver.find_element_by_name("password").send_keys("") 
time.sleep(2) 
driver.find_element_by_name("Submit").click() 
try:
  alertstr = driver.switch_to_alert()
  alertTF = True 
except:
  alertTF = False 
if alertTF:
  print alertstr.text   
  alertstr.accept() 

下拉框也是 web頁(yè)面上非常常見(jiàn)的功能明未,webdriver 對(duì)于一般的下拉框處理起來(lái)也相當(dāng)簡(jiǎn)單槽华,要想定位下拉框中的內(nèi)容,首先需要定位到下拉框 使用教務(wù)系統(tǒng)中的添加課程窗口中的下拉框選擇進(jìn)行舉例趟妥,使用不同方式進(jìn)行實(shí)現(xiàn)猫态。
下拉框處理: 二次定位:

driver.find_element_by_xx('xx').find_element_by_xx('xx').click() 
…… 
#先定位到下拉框 m=driver.find_element_by_id("ShippingMethod") 

#再點(diǎn)擊下拉框下的選項(xiàng) 
m.find_element_by_xpath("http://option[@value='10.69']").click() 
…… 

文件上傳:
driver.find_element_by_xx('xx').send_keys('d:/abc.txt')

#定位上傳按鈕,添加本地文件 
driver.find_element_by_name("file").send_keys('D:\\selenium_use_case\upload_file.txt')

文件下載:
確定Content-Type : 下載文件的類(lèi)型
方法一: curl -I URL | grep "Content-Type"

方法二:

import requests 
print requests.head(’http://www.python.org’).headers[’content-type’] 

文件下載:

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2) 
fp.set_preference("browser.download.manager.showWhenStarting",False) 
fp.set_preference("browser.download.dir", os.getcwd()) 
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream") 
browser = webdriver.Firefox(firefox_profile=fp) 
browser.get("http://pypi.python.org/pypi/selenium") 
browser.find_element_by_partial_link_text("selenium-2").click()

調(diào)用javaScript:
execute_script()

調(diào)用js方法

隱藏文字信息

driver.execute_script('$("#tooltip").fadeOut();') 

隱藏按鈕:

button = driver.find_element_by_class_name('btn') 
driver.execute_script('$(arguments[0]).fadeOut()',button) 

控制瀏覽器滾動(dòng)條:

將頁(yè)面滾動(dòng)條拖到底部

js="var q=document.documentElement.scrollTop=10000" 
driver.execute_script(js)

將滾動(dòng)條移動(dòng)到頁(yè)面的頂部

js_="var q=document.documentElement.scrollTop=0" 
driver.execute_script(js_) 

cookie處理:
get_cookies() 獲得所有cookie信息
get_cookie(name) 返回特定name 有cookie信息
add_cookie(cookie_dict) 添加cookie煮纵,必須有name 和value 值
delete_cookie(name) 刪除特定(部分)的cookie信息
delete_all_cookies() 刪除所有cookie信息

driver = webdriver.Firefox() 
driver.get("http://www.youdao.com") 
#向 cookie 的 name 和 value 添加會(huì)話(huà)信息懂鸵。
driver.add_cookie({'name':'key-aaaaaaa', 'value':'value-bbbb'}) 

遍歷 cookies 中的 name 和 value信息打印,當(dāng)然還有上面添加的信息

for cookie in driver.get_cookies(): 
  print "%s -> %s" % (cookie['name'], cookie['value']) 

Python WebDriver API-獲取對(duì)象屬性

獲取測(cè)試對(duì)象的屬性能夠幫我們更好的進(jìn)行對(duì)象的定位行疏。比如頁(yè)面上有很多標(biāo)簽為 input 元素匆光,而我們需要定位其中 1 個(gè)有具有 data-node 屬性不一樣的元素。由于 webdriver 是不支持直接使用 data-node 來(lái)定位對(duì)象的酿联,所以我們只能先把所有標(biāo)簽為 input都找到终息,然后遍歷這些 input,獲取想要的元素贞让。

通過(guò) find_elements 獲得一組元素周崭,通過(guò)循環(huán)遍歷找到想要的元素:

選擇頁(yè)面上所有的 tag name 為 input 的元素

inputs = driver.find_elements_by_tag_name('input') 

然后循環(huán)遍歷出 data-node 為594434493的元素,單擊勾選

for input in inputs:
  if input.get_attribute('data-node') == '594434493':   
    input.click() 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末喳张,一起剝皮案震驚了整個(gè)濱河市续镇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌销部,老刑警劉巖摸航,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異舅桩,居然都是意外死亡酱虎,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)擂涛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)读串,“玉大人,你說(shuō)我怎么就攤上這事撒妈』峙” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵踩身,是天一觀的道長(zhǎng)胀茵。 經(jīng)常有香客問(wèn)我,道長(zhǎng)挟阻,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮附鸽,結(jié)果婚禮上脱拼,老公的妹妹穿的比我還像新娘。我一直安慰自己坷备,他們只是感情好熄浓,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著省撑,像睡著了一般赌蔑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上竟秫,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天娃惯,我揣著相機(jī)與錄音,去河邊找鬼肥败。 笑死趾浅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的馒稍。 我是一名探鬼主播皿哨,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼纽谒!你這毒婦竟也來(lái)了证膨?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鼓黔,失蹤者是張志新(化名)和其女友劉穎央勒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體请祖,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡订歪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肆捕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刷晋。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖慎陵,靈堂內(nèi)的尸體忽然破棺而出眼虱,到底是詐尸還是另有隱情,我是刑警寧澤席纽,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布捏悬,位于F島的核電站,受9級(jí)特大地震影響润梯,放射性物質(zhì)發(fā)生泄漏过牙。R本人自食惡果不足惜甥厦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寇钉。 院中可真熱鬧刀疙,春花似錦、人聲如沸扫倡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)撵溃。三九已至疚鲤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缘挑,已是汗流浹背集歇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卖哎,地道東北人鬼悠。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像亏娜,于是被迫代替她去往敵國(guó)和親焕窝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容