Selenium-WebDriver API

一:瀏覽器操作

# 刷新
driver.refresh()

# 前進(jìn)

driver.forward()

# 后退

driver.back()

二:? 獲取標(biāo)簽元素

獲取標(biāo)簽元素常用的一共有8種定位方式,而Selenium實(shí)際提供了18種定位方式,還有8種是上面的復(fù)數(shù)形式,這里就不一一介紹了,實(shí)際運(yùn)用中并不常用,還有2種實(shí)際上是這上面所說16種的底層封裝。參數(shù)化的一種調(diào)用方式而已

# 通過ID定位目標(biāo)元素? ? ? ? ? ? ? ? ? ? ? ? ?driver.find_element_by_id('i1')

# 通過className定位目標(biāo)元素? ? ? ? ? driver.find_element_by_class_name('c1')

# 通過name屬性定位目標(biāo)元素? ? ? ? ? ?driver.find_element_by_name('n1')

# 通過Xpath定位目標(biāo)元素? ? ? ? ? ? ? ? ?driver.find_element_by_xpath('//*[@id="i1"]')

# 通過css Selector定位目標(biāo)元素? ? ? ?driver.find_element_by_css_selector('#i1')

# 通過標(biāo)簽名稱定位(注:在一個(gè)頁(yè)面中,標(biāo)簽一定會(huì)重復(fù),所以不用這個(gè)來進(jìn)行定位)? ? ? ? ?driver.find_element_by_tag_name('input')

# 通過標(biāo)簽中的文本查找元素? ? ? ? ? ?driver.find_element_by_link_text('登錄')

# 通過標(biāo)簽中文本的模糊匹配查找? ? driver.find_elements_by_partial_link_text('錄')

三: Cookie操作

# 根據(jù)cookieKey,獲取cookie信息? ? ?cookie = driver.get_cookie('cookieKey')

# 獲取所有cookie信息? ? ? ? ? ? ? ? ? ? ? ? ?cookies = driver.get_cookies()

# 添加cookie,嚴(yán)格按照格式添加,cookie的key為name,value為value? ? ? ? ? ? ? driver.add_cookie({'name':'tmp','value':'123123123'})

# 刪除所有cookie信息? ? ? ? ? ? ? ? ? ? ? ? driver.delete_all_cookies()

# 根據(jù)cookieKey刪除對(duì)應(yīng)cookie? ? ? ? driver.delete_cookie('UiCode')

四:窗口操作

# 獲取當(dāng)前瀏覽器的大小? ? ? ? ? driver.get_window_size()

# 通過像素設(shè)置瀏覽器的大小? ? driver.set_window_size('width','height')

# 獲取當(dāng)前窗口針對(duì)于Windows的位置的坐標(biāo)x,y? ? ? ?driver.get_window_position()

# 設(shè)置當(dāng)前窗口針對(duì)Windows的位置,x,y? ? ? ? ? ? driver.set_window_position(20,20)

# 最大化當(dāng)前窗口,不需要傳參? ? ? driver.maximize_window()

# 返回當(dāng)前操作的瀏覽器句柄? ? ? ?driver.current_window_handle

# 返回所有打開server的瀏覽器句柄? ? driver.window_handles


五: 截取當(dāng)前頁(yè)面

# 獲取當(dāng)前頁(yè)面的二進(jìn)制圖片數(shù)據(jù),需要自己去寫入文件? ? ? driver.get_screenshot_as_png()

# as_png的上層封裝,只需要傳入圖片名稱自動(dòng)寫成圖片? ? ?driver.get_screenshot_as_file('fileName.png')


六: 執(zhí)行JavaScript語句

# 執(zhí)行JavaScript語句

driver.execute_script('JavaScript Commond')

# 例:

# 通過js來操作滾動(dòng)條

# 參數(shù)1:x? 參數(shù)2: y

window.scrollTo(100,400);

七: 關(guān)閉與退出

# 當(dāng)開啟多個(gè)時(shí),關(guān)閉當(dāng)前頁(yè)面? ? ? driver.close()

# 退出并關(guān)閉所有頁(yè)面驅(qū)動(dòng)? ? ? ? ? ?driver.quit()


八: 其他

# 返回頁(yè)面源碼

driver.page_source

# 返回tag標(biāo)題

driver.title

# 返回當(dāng)前Url

driver.current_url

# 獲取瀏覽器名稱 如:chrome

driver.name

九: ElementApi接口

# 根據(jù)標(biāo)簽屬性名稱,獲取屬性value

element.get_attribute('style')

# 向輸入框輸入字符串 如果input的type為file類型 可以輸入文件絕對(duì)路徑上傳文件

element.send_keys()

# 清除文本內(nèi)容

element.clear()

# 鼠標(biāo)左鍵點(diǎn)擊操作

element.click()

# 通過屬性名稱獲取屬性

element.get_property('id')

# 返回元素是否可見 True or False

element.is_displayed()

# 返回元素是否被選中 True or False

element.is_selected()

# 返回標(biāo)簽元素的名字

element.tag_name

# 獲取當(dāng)前標(biāo)簽的寬和高

element.size

# 獲取元素的文本內(nèi)容

element.text

# 模仿回車按鈕 提交數(shù)據(jù)

element.submit()

# 獲取當(dāng)前元素的坐標(biāo)

element.location

# 截取圖片

element.screenshot()

十:常見的異常

NoSuchElementException:沒有找到元素


NoSuchFrameException:沒有找到iframe


NoSuchWindowException:沒找到窗口句柄handle


NoSuchAttributeException:屬性錯(cuò)誤


NoAlertPresentException:沒找到alert彈出框


  ElmentNotVisibleException:元素不可見


  ElementNotSelectableException:元素沒有被選中


  TimeoutException:查找元素超時(shí)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容