Python Selenium WebDriver API常用方法匯總

在selenium自動化中用的最多的就是webdriver了,通過webdriver可以操作瀏覽器以及網(wǎng)頁上的控件缕粹,這里對webdriver常用方法進行匯總稚茅,以便參考

1. 什么是 WebDriver?

? ? * WebDriver是針對各個瀏覽器而開發(fā),與瀏覽器的緊密集成支持創(chuàng)建更高級的測試致开。除了來自瀏覽器廠商的支持峰锁,WebDriver還利用操作系統(tǒng)級的調(diào)用模擬用戶輸入萎馅。WebDriver支Firefox(FirefoxDriver)双戳、IE (InternetExplorerDriver)、Opera(OperaDriver)和Chrome(ChromeDriver)糜芳。它還支持Android?(AndroidDriver)和iPhone(IPhoneDriver)的移動應(yīng)用測試飒货。它還包括一個基于HtmlUnit的無界面實現(xiàn)魄衅,稱為HtmlUnitDriver。WebDriver?API可以通過Python塘辅、Ruby晃虫、Java和C#訪問,支持開發(fā)人員使用他們偏愛的編程語言來創(chuàng)建測試扣墩。

2. 如何調(diào)用不同瀏覽器的WebDriver哲银?

? ? * 調(diào)用IE瀏覽器的webdriver:

????????driver = webdriver.Ie()

? ? * 調(diào)用Chrome瀏覽器的webdriver:

????????driver = webdriver.Chrome()

? ? * 調(diào)用Firefox的webdriver:

????????driver = webdriver.Firefox()

? ? * 調(diào)用Opera的webdriver:

????????driver = webdriver.Opera()

? ? * 調(diào)用Htmlunitdriver:

????????driver = webdriver.Remote(desired_capabilities=DesiredCapabilities.HTMLUNIT)

3. 針對瀏覽器本身的一些常用操作:

? ? * 訪問某個網(wǎng)站鏈接(例如訪問百度):driver.get("http://www.baidu.com")

? ? *?瀏覽器最大化:driver.maximize_window()

? ? *?設(shè)置瀏覽器的寬和高:driver.set_window_size(480,800)

? ? ?(#寬為480,高為800)

? ? * 瀏覽器的前進:driver.forward()

? ? *?瀏覽器的后退:driver.back()

4. 元素定位呻惕,元素定位實例請看另一篇'WebDriver 元素定位實例'

? ? * webdriver 提供了一系列的元素定位方法荆责,常用的有以下幾種: (id,name ,? class name, tag ????????name, link text,partial link text,xpath, cssselector)

? ? * 分別對應(yīng) python webdriver 中的方法為:

????????§find_element_by_id()

????????§find_element_by_name()

????????§find_element_by_class_name()

????????§find_element_by_tag_name()

????????§find_element_by_link_text()

????????§find_element_by_partial_link_text()

????????§find_element_by_xpath()

????????§find_element_by_css_selector()

5.?定位只是第一步,定位之后需要對這個對象進行操作亚脆,webdriver 中最常用的操作元素的方法有下面幾個:

? ? * clear()清除元素的內(nèi)容

? ? * send_keys() 在元素上輸入內(nèi)容

? ? * click()單擊元素

? ? * select_by_XX() 選擇下拉框內(nèi)容

6.?鼠標事件常用方法:

? ? * context_click() 右擊

? ? * double_click() 雙擊

? ? * drag_and_drop() 拖動

? ? * move_to_element() 鼠標懸停在一個元素上

? ? * click_and_hold() 按下鼠標左鍵在一個元素上

7. 獲取頁面信息

? ? * 獲取當(dāng)前頁面的title做院,打印

? ? ? ? title = driver.title()

? ? ? ? print title

? ? * 獲取當(dāng)前頁面的url,打印

? ? ? ? url = driver.current_url()

? ? ? ? print url

? ? * 獲取控件文本信息并打印

? ? ? ? text = driver.find_element_by_id('user_id').text()

? ? ? ? print text

8. 操作彈出框

? ? *接受警告信息

????????alert = driver.switch_to_alert()

????????alert.accept()

? ? * 得到文本信息并打印

????????alert = driver.switch_to_alert()

????????print alert.text()

? ? * 取消對話框

????????alert = driver.switch_to_alert()

????????alert.dismiss()

9. 有時候濒持,一個網(wǎng)頁會劃分成多個frame键耕,如果突然定位不到元素了,不妨看看要定位的元素是否不再當(dāng)前所在的frame中

? ? * 定位Frame中的元素柑营,必須先切換到元素所在的frame中屈雄,以切換上圖不同的frame為例:

????????切換到topFrame

?????????????self.driver.switch_to.parent_frame()

? ? ? ? ????self.driver.switch_to.frame('topFrame’)

????????切換到mainFrame

? ? ? ? ????self.driver.switch_to.parent_frame()

?????????????self.driver.switch_to.frame('mainFrame‘)

????????切換到leftFrame

? ????????self.driver.switch_to.parent_frame()

? ????????self.driver.switch_to.frame('lefFrame')?

10. 瀏覽器多窗口切換

? ? * 有時候我們在測試一個 web應(yīng)用時會出現(xiàn)多個瀏覽器窗口的情況,webdriver提供了相關(guān)相方法可以很輕松的在多個窗口之間切換并操作不同窗口上的元素官套。

????* 獲得當(dāng)前窗口句柄

????????current_window_handle()

? ? * 返回的所有窗口的句柄到當(dāng)前會話

????????window_handles()

? ? * 用于處理多窗口操作的方法

????????switch_to_window()

? ? * 關(guān)閉當(dāng)前窗口

????????close()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棚亩,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子虏杰,更是在濱河造成了極大的恐慌讥蟆,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纺阔,死亡現(xiàn)場離奇詭異瘸彤,居然都是意外死亡,警方通過查閱死者的電腦和手機笛钝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門质况,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人玻靡,你說我怎么就攤上這事结榄。” “怎么了囤捻?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵臼朗,是天一觀的道長。 經(jīng)常有香客問我,道長视哑,這世上最難降的妖魔是什么绣否? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮挡毅,結(jié)果婚禮上蒜撮,老公的妹妹穿的比我還像新娘。我一直安慰自己跪呈,他們只是感情好段磨,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耗绿,像睡著了一般薇溃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缭乘,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天沐序,我揣著相機與錄音,去河邊找鬼堕绩。 笑死策幼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奴紧。 我是一名探鬼主播特姐,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼黍氮!你這毒婦竟也來了唐含?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤沫浆,失蹤者是張志新(化名)和其女友劉穎捷枯,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體专执,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡淮捆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了本股。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攀痊。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拄显,靈堂內(nèi)的尸體忽然破棺而出苟径,到底是詐尸還是另有隱情,我是刑警寧澤躬审,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布嘶朱,位于F島的核電站,受9級特大地震影響儒拂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一炒刁、第九天 我趴在偏房一處隱蔽的房頂上張望恩沽。 院中可真熱鬧,春花似錦翔始、人聲如沸罗心。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渤闷。三九已至,卻和暖如春脖镀,著一層夾襖步出監(jiān)牢的瞬間飒箭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工蜒灰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弦蹂,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓强窖,卻偏偏與公主長得像凸椿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子翅溺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

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