selenium的常用api

簡(jiǎn)介:

網(wǎng)上找了蠻久窄潭,好多中文api文檔都被設(shè)置權(quán)限瀏覽沐批,趁還未完全被商業(yè)化从铲,記錄一個(gè)方便日后使用
注:任何形式轉(zhuǎn)載文章瘪校,請(qǐng)留言作者并注明出處)



作者:Simon0903

鏈接:http://www.reibang.com/u/2b4bc3b5e6fc

來(lái)源:簡(jiǎn)書(shū)

簡(jiǎn)書(shū)著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處名段。

調(diào)用說(shuō)明:


driver.屬性值

變量說(shuō)明:

1.driver.current_url:用于獲得當(dāng)前頁(yè)面的URL

2.driver.title:用于獲取當(dāng)前頁(yè)面的標(biāo)題

3.driver.page_source:用于獲取頁(yè)面html源代碼??

4.driver.current_window_handle:用于獲取當(dāng)前窗口句柄

5.driver.window_handles:用于獲取所有窗口句柄

函數(shù)說(shuō)明:

一阱扬、定位模塊.driver.find_element_*():定位元素()

? ??????????By.id:driver.findElement(By.id("id));

????????????By.name:driver.findElement(By.name("name"));

????????????By.xpath:driver.findElement(By.xpath("http://input[@id='id']"));?

????????????By.className:driver.findElement(By.className("input_class"));

????????????By.cssSelector:driver.findElement(By.cssSelector(".input_class"));

????????????By.linkText:driver.findElement(By.linkText("link"));

????????????By.partialLinkText:driver.findElement(By.partialLinkText("link"));

????????????By.tagName:driver.findElement(By.tagName("form"));

2.driver.get(url):? #瀏覽器加載url。? ?

? ??????????實(shí)例:driver.get("http//:www.baidu.com")

3.driver.forward():#瀏覽器向前(點(diǎn)擊向前按鈕)伸辟。

4.driver.back():#瀏覽器向后(點(diǎn)擊向后按鈕)麻惶。

5.driver.refresh():#瀏覽器刷新(點(diǎn)擊刷新按鈕)。

6.driver.close():#關(guān)閉當(dāng)前窗口信夫,或最后打開(kāi)的窗口窃蹋。

7.driver.quit():關(guān)閉所有關(guān)聯(lián)窗口,#并且安全關(guān)閉session静稻。

8.driver.maximize_window():? #最大化瀏覽器窗口脐彩。

9.driver.set_window_size(寬,高):#設(shè)置瀏覽器窗口大小姊扔。

10.driver.get_window_size():#獲取當(dāng)前窗口的長(zhǎng)和寬惠奸。

11.driver.get_window_position(): #獲取當(dāng)前窗口坐標(biāo)。

12.driver.get_screenshot_as_file(filename):? #截取當(dāng)前窗口恰梢。?

? ??????????????實(shí)例:driver.get_screenshot_as_file('D:/selenium/image/baidu.jpg')

13.driver.implicitly_wait(秒): #隱式等待佛南,通過(guò)一定的時(shí)長(zhǎng)等待頁(yè)面上某一元素加載完成。若提前定位到元素嵌言,則繼續(xù)執(zhí)行嗅回。若超過(guò)時(shí)間未加載出,則拋出NoSuchElementException異常摧茴。

????????????????實(shí)例:driver.implicitly_wait(10) #等待10秒

14.driver.switch_to_frame(id或name屬性值): #切換到新表單(同一窗口)绵载。若無(wú)id或?qū)傩灾担上韧ㄟ^(guò)xpath定位到iframe苛白,再將值傳給switch_to_frame()

15.driver.switch_to.parent_content(): #跳出當(dāng)前iframe標(biāo)簽內(nèi)嵌的表單(往上回退一級(jí)目錄)娃豹。該方法默認(rèn)對(duì)應(yīng)于離它最近的switch_to.frame()方法。

16.driver.switch_to.default_content(): #跳回最外層的html頁(yè)面购裙。

17.driver.switch_to_window(窗口句柄):#切換到新窗口懂版。

18.driver.switch_to_alert(): #警告框處理。處理JavaScript所生成的alert,confirm,prompt.

19.driver.execute_script(js): #調(diào)用js躏率。

20.driver.get_cookies(): #獲取當(dāng)前會(huì)話所有cookie信息躯畴。

21.driver.get_cookie(cookie_name):#返回字典的key為“cookie_name”的cookie信息民鼓。

????????????????實(shí)例:driver.get_cookie("NET_SessionId")

22.driver.add_cookie(cookie_dict):添加cookie。#“cookie_dict”指字典對(duì)象蓬抄,必須有name和value值丰嘉。

23.driver.delete_cookie(name,optionsString):#刪除cookie信息。

24.driver.delete_all_cookies(): #刪除所有cookie信息嚷缭。

25.element.isDisplay();? #判斷元素是否顯示

26.element.getAttribute()? #得到元素的屬性值????


二饮亏、動(dòng)作鏈

driver.navigate().to("http://www.baidu.com/");???#打開(kāi)百度

driver.navigate().forward()?#?向前

driver.navigate().back()? #?向后

driver.navigate().refresh()? ? # 刷新

鼠標(biāo)操作

ActionChains方法列表

move_by_offset(xoffset, yoffset) ——鼠標(biāo)從當(dāng)前位置移動(dòng)到某個(gè)坐標(biāo)

move_to_element(to_element) ——鼠標(biāo)移動(dòng)到某個(gè)元素

move_to_element_with_offset(to_element, xoffset, yoffset) ——移動(dòng)到距某個(gè)元素(左上角坐標(biāo))多少距離的位置

click(on_element=None)? #單擊鼠標(biāo)左鍵

click_and_hold(on_element=None) #點(diǎn)擊鼠標(biāo)左鍵,不松開(kāi)

context_click(on_element=None) #點(diǎn)擊鼠標(biāo)右鍵

double_click(on_element=None) #雙擊鼠標(biāo)左鍵

drag_and_drop(source, target) #拖拽到某個(gè)元素然后松開(kāi)

drag_and_drop_by_offset(source, xoffset, yoffset) #拖拽到某個(gè)坐標(biāo)然后松開(kāi)

key_down(value, element=None) #按下某個(gè)鍵盤(pán)上的鍵

key_up(value, element=None) #松開(kāi)某個(gè)鍵

move_by_offset(xoffset, yoffset) #鼠標(biāo)從當(dāng)前位置移動(dòng)到某個(gè)坐標(biāo)

move_to_element(to_element) #鼠標(biāo)移動(dòng)到某個(gè)元素

move_to_element_with_offset(to_element, xoffset, yoffset) #移動(dòng)到距某個(gè)元素(左上角坐標(biāo))多少距離的位置

perform()#執(zhí)行鏈中的所有動(dòng)作

release(on_element=None) #在某個(gè)元素位置松開(kāi)鼠標(biāo)左鍵

send_keys(*keys_to_send)? ?#發(fā)送某個(gè)鍵到當(dāng)前焦點(diǎn)的元素

send_keys_to_element(element, *keys_to_send)? # 發(fā)送某個(gè)鍵到指定元素




登錄后拿cookie實(shí)例:

% driver.get('https://www.csdn.com/')

% print("登錄前:")

% for cookie in driver.get_cookies():

%? ? ? ? print(cookie)

% loginC =??driver.find_element_by_css_selector('#login_area')

% enter =??loginC.find_element_by_link_text('登錄')register.click()

#等待20秒峭状,手動(dòng)輸入賬號(hào)密碼克滴,登錄逼争。記得勾選下次自動(dòng)登錄,就怕頁(yè)面有檢測(cè)機(jī)制

% time.sleep(25)

% print("登錄后: ")?

% for cookie01 in driver.get_cookies():

%? ? ? ?print(cookie01)

% driver.quit()




判斷元素是否顯示

element.isDisplay();

獲取元素屬性

element.getAttribute()? #得到元素的屬性值????


輸入框操作

element.sendKeys(“test”)? # 在輸入框中輸入內(nèi)容test:

element.clear()? # /將輸入框清空

element.getText() # 獲取輸入框的文本內(nèi)容:?


下拉選擇框

select.selectByVisibleText(“A”);

select.selectByValue(“1”);?

select.deselectAll();

select.deselectByValue(“1”);

select.deselectByVisibleText(“A”);

select.getAllSelectedOptions();

select.getFirstSelectedOption();?


單選框

radio.click()? # 選擇某個(gè)單選項(xiàng)

radio.clear()? #清空某個(gè)單選項(xiàng)

radio.isSelected() #/判斷某個(gè)單選項(xiàng)是否已經(jīng)被選擇


多選框

checkbox.click();

checkbox.clear();

checkbox.isSelected()? #判斷多選框是否被選擇

checkbox.isEnabled()? #判斷多選框是否可用


按鈕

button.click()? #點(diǎn)擊按鈕

button.isEnabled ()? #判斷按鈕是否可用


Alert對(duì)話框

alert.accept() #點(diǎn)擊確定

alert.dismiss()  #點(diǎn)擊取消

alert.getText() #獲取Alert對(duì)話框的文本


表單

approve.click()?

approve.submit()? #只適合于表單的提交


超時(shí)設(shè)置?

driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS)  #識(shí)別元素時(shí)的超時(shí)時(shí)間

driver.manage().timeouts().pageLoadTimeout(10,TimeUnit.SECONDS)  #頁(yè)面加載時(shí)的超時(shí)時(shí)間

driver.manage().timeouts().setScriptTimeout(10,TimeUnit.SECONDS) ? #異步腳本的超時(shí)時(shí)間


截屏

File file = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末优床,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子誓焦,更是在濱河造成了極大的恐慌胆敞,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杂伟,死亡現(xiàn)場(chǎng)離奇詭異移层,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)赫粥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門观话,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人越平,你說(shuō)我怎么就攤上這事频蛔。” “怎么了秦叛?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵晦溪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我挣跋,道長(zhǎng)三圆,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任避咆,我火速辦了婚禮舟肉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘查库。我一直安慰自己度气,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布膨报。 她就那樣靜靜地躺著磷籍,像睡著了一般适荣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上院领,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天弛矛,我揣著相機(jī)與錄音,去河邊找鬼比然。 笑死丈氓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的强法。 我是一名探鬼主播万俗,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼饮怯!你這毒婦竟也來(lái)了闰歪?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蓖墅,失蹤者是張志新(化名)和其女友劉穎库倘,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體论矾,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡教翩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贪壳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饱亿。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖闰靴,靈堂內(nèi)的尸體忽然破棺而出彪笼,到底是詐尸還是另有隱情,我是刑警寧澤传黄,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布杰扫,位于F島的核電站,受9級(jí)特大地震影響膘掰,放射性物質(zhì)發(fā)生泄漏章姓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一识埋、第九天 我趴在偏房一處隱蔽的房頂上張望凡伊。 院中可真熱鬧窒舟,春花似錦、人聲如沸惠豺。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)捺弦。三九已至,卻和暖如春幽崩,著一層夾襖步出監(jiān)牢的瞬間寞钥,已是汗流浹背潮饱。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工柠贤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人邻吭。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓宴霸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親畸写。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354