selenium實(shí)戰(zhàn)1

關(guān)鍵詞:selenium王滤、python碰逸、Chrome
測(cè)試需求:郵箱登錄后削祈,發(fā)送測(cè)試郵件
一饰抒、登錄

登錄界面.png

Chrome F12定位后肮砾,發(fā)現(xiàn)賬號(hào)輸入框是有id屬性,這是我們最希望看到的袋坑。
賬號(hào)輸入元素.png

密碼輸入框同樣也有id屬性唇敞。
密碼輸入元素.png

登錄按鈕元素定位如下:
登錄元素1.png

登錄按鈕,如果通過(guò)CSS選擇器定位 .w-button,發(fā)現(xiàn)有2個(gè)。
登錄元素2.png

如果切換到第二個(gè)定位到的元素發(fā)現(xiàn)疆柔,2個(gè)元素的屬性很像咒精。差別就在:一個(gè)元素class是w-button-account,一個(gè)元素class是w-button-admin旷档。
<button class="w-button w-button-account js-loginbtn" type="submit" tabindex="4">登 錄</button>
<button class="w-button w-button-admin js-loginbtn" type="submit" tabindex="4">管理員登錄</button>

所以最終我們決定使用.w-button-account去定位模叙。

登錄的代碼如下:(敏感詞使用xxxxx表示)

#login
driver.find_element_by_id("accname").send_keys('xxxxxxxxxx')
driver.find_element_by_id("accpwd").send_keys('xxxxxx')
driver.find_element_by_css_selector(".w-button-account").click()

二、點(diǎn)擊寫信按鈕
登錄成功后鞋屈,需要點(diǎn)擊寫信范咨。

寫信.png

元素定位發(fā)現(xiàn)a標(biāo)簽有一個(gè)aXieXIN class屬性,也是可以唯一定位的。
寫信按鈕.png

但是注意下厂庇,前面有個(gè)html標(biāo)簽渠啊,需要考慮frame的存在。關(guān)于frame的理解參考selenium frame講解和案例
切換過(guò)去后权旷,的確有一個(gè)frame替蛉。
frame-folder.png

代碼如下:

time.sleep(2)   #登錄有的時(shí)候頁(yè)面加載會(huì)慢,加個(gè)延遲處理
driver.switch_to.frame("folder")
driver.find_element_by_css_selector(".aXieXIN").click()

三拄氯、編輯內(nèi)容-收件人
點(diǎn)擊寫信按鈕之后躲查,跳轉(zhuǎn)到編輯界面。

編輯.png

元素定位后译柏,發(fā)現(xiàn)收件人有id屬性oDivTo,也有frame的處理镣煮。
收件人元素.png

代碼如下:

driver.switch_to.default_content()
driver.switch_to.frame("foldmain")
time.sleep(2)
driver.find_element_by_css_selector("#oDivTo").send_keys("xxxxxxxxxx"+'\n')

但是執(zhí)行過(guò)程中,報(bào)錯(cuò)connot focus element鄙麦。而且在收件人輸入框典唇,根本沒(méi)有光標(biāo)閃爍,怪不得獲得不到焦點(diǎn)呢胯府。沒(méi)有焦點(diǎn)蚓聘,無(wú)法輸入。


報(bào)錯(cuò).png

收件人.png

本以為元素需要click盟劫,再輸入夜牡。但是加大延遲后,發(fā)現(xiàn)一開始光標(biāo)是閃爍的侣签,但是執(zhí)行send_keys時(shí)就報(bào)錯(cuò)塘装。


光標(biāo).png

經(jīng)過(guò)多番排查,終于知道原因影所。我們回顧下我們之前定位的元素蹦肴,收件人的元素我們定位的是div標(biāo)簽,但是div標(biāo)簽是不能夠輸入的猴娩,input和body這些元素才可以輸入阴幌。

收件人元素.png

有兩種解決方案:
方案一:找到div下面的input標(biāo)簽勺阐,send_keys

input.png

代碼如下:

#編輯內(nèi)容
#收件人
time.sleep(2)
driver.switch_to.default_content()
driver.switch_to.frame("foldmain")
driver.find_element_by_css_selector("#oDivTo input").send_keys("xxxxxxxxxxx"+'\n')

方案二:使用ActionChains動(dòng)作鏈,這個(gè)類常用于一些鍵鼠操作矛双。代碼如下:

time.sleep(2)
driver.switch_to.default_content()
driver.switch_to.frame("foldmain")
from selenium.webdriver.common.action_chains import ActionChains
ac=ActionChains(driver)
receiver=driver.find_element_by_id("oDivTo")
ac.click(receiver).send_keys("xxxxxxxxxx"+'\n').perform()

四渊抽、編輯內(nèi)容-主題
主題元素通過(guò)id屬性定位,主題元素也是在foldmain這個(gè)frame里面议忽,不需要切換:

主題.png

代碼如下:

driver.find_element_by_id("subject").send_keys("test")

五懒闷、編輯內(nèi)容-內(nèi)容
內(nèi)容定位到body元素,前面有一個(gè)HtmlEditor frame栈幸。再往前切換還有一個(gè)editor frame愤估。再往前切換還有foldmain frame。

內(nèi)容元素.png

HtmlEditor.png

editor.png

foldmain.png

目前為止速址,我們使用過(guò)的frame的架構(gòu)圖如下:


frame框架.png

六玩焰、發(fā)送
發(fā)送直接通過(guò)id屬性定位,但是發(fā)送按鈕在foldmain 這個(gè)frame下面:

image.png

代碼如下:

#發(fā)送
driver.switch_to.default_content()
driver.switch_to.frame("foldmain")
driver.find_element_by_id("oSendButton1").click()

------------------------------------------------------------------------------------------最終代碼如下:

from selenium import  webdriver
import  time
driver=webdriver.Chrome('d:\webdriver\chromedriver.exe')
driver.implicitly_wait(10)
driver.get("https://qiye.163.com/login/")
#login
driver.find_element_by_id("accname").send_keys('xxxxxxxx')
driver.find_element_by_id("accpwd").send_keys('xxxxxxxx')
driver.find_element_by_css_selector(".w-button-account").click()



#點(diǎn)擊寫信
time.sleep(2)   #登錄有的時(shí)候頁(yè)面加載會(huì)慢,加個(gè)延遲處理
driver.switch_to.frame("folder")
driver.find_element_by_css_selector(".aXieXIN").click()

#方法一
#編輯內(nèi)容
#收件人
# time.sleep(2)
# driver.switch_to.default_content()
# driver.switch_to.frame("foldmain")
# driver.find_element_by_css_selector("#oDivTo input").send_keys("xxxxxxxxxxxx"+'\n')


#方法二
time.sleep(2)
driver.switch_to.default_content()
driver.switch_to.frame("foldmain")
from selenium.webdriver.common.action_chains import ActionChains
ac=ActionChains(driver)
receiver=driver.find_element_by_id("oDivTo")
ac.click(receiver).send_keys("xxxxxxxxxxx"+'\n').perform()



#主題
driver.find_element_by_id("subject").send_keys("test")

#內(nèi)容
driver.switch_to.frame("editor")
driver.switch_to.frame("HtmlEditor")
driver.find_element_by_tag_name("body").send_keys("test")


#發(fā)送
driver.switch_to.default_content()
driver.switch_to.frame("foldmain")
driver.find_element_by_id("oSendButton1").click()

input()
driver.quit()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末芍锚,一起剝皮案震驚了整個(gè)濱河市昔园,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闹炉,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件润樱,死亡現(xiàn)場(chǎng)離奇詭異渣触,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)壹若,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門嗅钻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人店展,你說(shuō)我怎么就攤上這事养篓。” “怎么了赂蕴?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵柳弄,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我概说,道長(zhǎng)碧注,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任糖赔,我火速辦了婚禮萍丐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘放典。我一直安慰自己逝变,他們只是感情好基茵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著壳影,像睡著了一般拱层。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上态贤,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天舱呻,我揣著相機(jī)與錄音,去河邊找鬼悠汽。 笑死箱吕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的柿冲。 我是一名探鬼主播茬高,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼假抄!你這毒婦竟也來(lái)了怎栽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宿饱,失蹤者是張志新(化名)和其女友劉穎熏瞄,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谬以,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡强饮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了为黎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邮丰。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖铭乾,靈堂內(nèi)的尸體忽然破棺而出剪廉,到底是詐尸還是另有隱情,我是刑警寧澤炕檩,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布斗蒋,位于F島的核電站,受9級(jí)特大地震影響笛质,放射性物質(zhì)發(fā)生泄漏吹泡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一经瓷、第九天 我趴在偏房一處隱蔽的房頂上張望爆哑。 院中可真熱鬧,春花似錦舆吮、人聲如沸揭朝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)潭袱。三九已至柱嫌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屯换,已是汗流浹背编丘。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留彤悔,地道東北人嘉抓。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像晕窑,于是被迫代替她去往敵國(guó)和親抑片。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

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