Python Selenium庫(kù)的基本使用教程
入門(mén)教程:Selenium官網(wǎng)教程
1.Selenium簡(jiǎn)介Selenium是一個(gè)用于測(cè)試網(wǎng)站的自動(dòng)化測(cè)試工具,支持各種瀏覽器包括Chrome、Firefox、Safari等主流界面瀏覽器,同時(shí)也支持phantomJS無(wú)界面瀏覽器。
2.支持多種操作系統(tǒng)如Windows、Linux、IOS、Android等。
3.安裝Seleniumpip install Selenium4.安裝瀏覽器驅(qū)動(dòng)
Selenium3.x調(diào)用瀏覽器必須有一個(gè)webdriver驅(qū)動(dòng)文件
Chrome驅(qū)動(dòng)文件下載:點(diǎn)擊下載chromedrive
Firefox驅(qū)動(dòng)文件下載:點(diǎn)擊下載geckodriver
5.配置環(huán)境變量設(shè)置瀏覽器的地址非常簡(jiǎn)單。 我們可以手動(dòng)創(chuàng)建一個(gè)存放瀏覽器驅(qū)動(dòng)的目錄,如: F:GeckoDriver , 將下載的瀏覽器驅(qū)動(dòng)文件(例如:chromedriver、geckodriver)丟到該目錄下。
我的電腦?>屬性?>系統(tǒng)設(shè)置?>高級(jí)?>環(huán)境變量?>系統(tǒng)變量?>Path,將“F:GeckoDriver”目錄添加到Path的值中。比如:Path字段;F:GeckoDriver
參考瀏覽器驅(qū)動(dòng)環(huán)境配置
(二)Selenium 快速入門(mén)入門(mén)參考文獻(xiàn):Selenium入門(mén)
1.Selenium提供了8種定位方式: id name class name tag name link text partial link text xpath css selector 2.定位元素的8種方式參考:selenium元素定位
定位一個(gè)元素 定位多個(gè)元素 含義 find_element_by_id find_elements_by_id 通過(guò)元素id定位 find_element_by_name find_elements_by_name 通過(guò)元素name定位 find_element_by_xpath find_elements_by_xpath 通過(guò)xpath表達(dá)式定位 find_element_by_link_text find_elements_by_link_tex 通過(guò)完整超鏈接定位 find_element_by_partial_link_text find_elements_by_partial_link_text 通過(guò)部分鏈接定位 find_element_by_tag_name find_elements_by_tag_name 通過(guò)標(biāo)簽定位 find_element_by_class_name find_elements_by_class_name 通過(guò)類名進(jìn)行定位 find_elements_by_css_selector find_elements_by_css_selector 通過(guò)css選擇器進(jìn)行定位 3.實(shí)例演示假如我們有一個(gè)Web頁(yè)面,通過(guò)前端工具(如,F(xiàn)irebug)查看到一個(gè)元素的屬性是這樣的。
<html> <head> <body link='#0000cc'> <a href='http://www.cgvv.com.cn/' rel='external nofollow' onmousedown='return c({’fm’:’tab’,’tab’:’logo’})'> <form name='f' action='/s'> <span ></span> <input name='wd' value='' maxlength='255' autocomplete='off'>
通過(guò)id定位:
dr.find_element_by_id('kw')
通過(guò)name定位:
dr.find_element_by_name('wd')
通過(guò)class name定位:
dr.find_element_by_class_name('s_ipt')
通過(guò)tag name定位:
dr.find_element_by_tag_name('input')
通過(guò)xpath定位,xpath定位有N種寫(xiě)法,這里列幾個(gè)常用寫(xiě)法:
dr.find_element_by_xpath('//*[@]')dr.find_element_by_xpath('//*[@name=’wd’]')dr.find_element_by_xpath('//input[@]')dr.find_element_by_xpath('/html/body/form/span/input')dr.find_element_by_xpath('//span[@]/input')dr.find_element_by_xpath('//form[@]/span/input')dr.find_element_by_xpath('//input[@ and @name=’wd’]')
通過(guò)css定位,css定位有N種寫(xiě)法,這里列幾個(gè)常用寫(xiě)法:
dr.find_element_by_css_selector('#kw')dr.find_element_by_css_selector('[name=wd]')dr.find_element_by_css_selector('.s_ipt')dr.find_element_by_css_selector('html > body > form > span > input')dr.find_element_by_css_selector('span.soutu-btn> input#kw')dr.find_element_by_css_selector('form#form > span > input')
接下來(lái),我們的頁(yè)面上有一組文本鏈接。
<a rel='external nofollow' name='tj_trnews'>新聞</a><a rel='external nofollow' name='tj_trhao123'>hao123</a>
通過(guò)link text定位:
dr.find_element_by_link_text('新聞')dr.find_element_by_link_text('hao123')
通過(guò)partial link text定位:
dr.find_element_by_partial_link_text('新')dr.find_element_by_partial_link_text('hao')dr.find_element_by_partial_link_text('123')4.Selenium庫(kù)下webdriver模塊常用方法的使用
1.控制瀏覽器操作的一些方法
方法 說(shuō)明 set_window_size() 設(shè)置瀏覽器的大小 back() 控制瀏覽器后退 forward() 控制瀏覽器前進(jìn) refresh() 刷新當(dāng)前頁(yè)面 clear() 清除文本 send_keys (value) 模擬按鍵輸入 click() 單擊元素 submit() 用于提交表單 get_attribute(name) 獲取元素屬性值 is_displayed() 設(shè)置該元素是否用戶可見(jiàn) size 返回元素的尺寸 text 獲取元素的文本實(shí)例演示
from selenium import webdriverfrom time import sleep#1.創(chuàng)建Chrome瀏覽器對(duì)象,這會(huì)在電腦上在打開(kāi)一個(gè)瀏覽器窗口browser = webdriver.Firefox(executable_path ='F:GeckoDrivergeckodriver')#2.通過(guò)瀏覽器向服務(wù)器發(fā)送URL請(qǐng)求browser.get('https://www.baidu.com/')sleep(3)#3.刷新瀏覽器browser.refresh()#4.設(shè)置瀏覽器的大小browser.set_window_size(1400,800)#5.設(shè)置鏈接內(nèi)容element=browser.find_element_by_link_text('新聞')element.click()element=browser.find_element_by_link_text('“下團(tuán)組”時(shí)間')element.click()
2.鼠標(biāo)事件
在 WebDriver 中, 將這些關(guān)于鼠標(biāo)操作的方法封裝在 ActionChains 類提供。
方法 說(shuō)明 ActionChains(driver) 構(gòu)造ActionChains對(duì)象 context_click() 執(zhí)行鼠標(biāo)懸停操作 move_to_element(above) 右擊 double_click() 雙擊 drag_and_drop() 拖動(dòng) move_to_element(above) 執(zhí)行鼠標(biāo)懸停操作 context_click() 用于模擬鼠標(biāo)右鍵操作, 在調(diào)用時(shí)需要指定元素定位 perform() 執(zhí)行所有 ActionChains 中存儲(chǔ)的行為,可以理解成是對(duì)整個(gè)操作的提交動(dòng)作實(shí)例演示
from selenium import webdriver#1.引入 ActionChains 類from selenium.webdriver.common.action_chains import ActionChains#1.創(chuàng)建Chrome瀏覽器對(duì)象,這會(huì)在電腦上在打開(kāi)一個(gè)瀏覽器窗口driver = webdriver.Firefox(executable_path ='F:GeckoDrivergeckodriver')driver.get('https://www.baidu.com')#2.定位到要懸停的元素element= driver.find_element_by_link_text('設(shè)置')#3.對(duì)定位到的元素執(zhí)行鼠標(biāo)懸停操作ActionChains(driver).move_to_element(element).perform()#找到鏈接elem1=driver.find_element_by_link_text('搜索設(shè)置')elem1.click()#通過(guò)元素選擇器找到id=sh_2,并點(diǎn)擊設(shè)置elem2=driver.find_element_by_id('sh_1')elem2.click()#保存設(shè)置elem3=driver.find_element_by_class_name('prefpanelgo')elem3.click()
3.鍵盤(pán)事件
Selenium中的Key模塊為我們提供了模擬鍵盤(pán)按鍵的方法,那就是send_keys()方法。它不僅可以模擬鍵盤(pán)輸入,也可以模擬鍵盤(pán)的操作。
常用的鍵盤(pán)操作如下:
模擬鍵盤(pán)按鍵 說(shuō)明 send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace) send_keys(Keys.SPACE) 空格鍵(Space) send_keys(Keys.TAB) 制表鍵(Tab) send_keys(Keys.ESCAPE) 回退鍵(Esc) send_keys(Keys.ENTER) 回車鍵(Enter)
組合鍵的使用
模擬鍵盤(pán)按鍵 說(shuō)明 send_keys(Keys.CONTROL,‘a(chǎn)’) 全選(Ctrl+A) send_keys(Keys.CONTROL,‘c’) 復(fù)制(Ctrl+C) send_keys(Keys.CONTROL,‘x’) 剪切(Ctrl+X) send_keys(Keys.CONTROL,‘v’) 粘貼(Ctrl+V) send_keys(Keys.F1…Fn) 鍵盤(pán) F1…Fn
4.獲取斷言信息
不管是在做功能測(cè)試還是自動(dòng)化測(cè)試,最后一步需要拿實(shí)際結(jié)果與預(yù)期進(jìn)行比較。這個(gè)比較的稱之為斷言。通過(guò)我們獲取title 、URL和text等信息進(jìn)行斷言。
屬性 說(shuō)明 title 用于獲得當(dāng)前頁(yè)面的標(biāo)題 current_url 用戶獲得當(dāng)前頁(yè)面的URL text 獲取搜索條目的文本信息
實(shí)例演示
from selenium import webdriverfrom time import sleepdriver = webdriver.Firefox(executable_path ='F:GeckoDrivergeckodriver')driver.get('https://www.baidu.com')print(’Before search================’)# 打印當(dāng)前頁(yè)面titletitle = driver.titleprint(title)# 打印當(dāng)前頁(yè)面URLnow_url = driver.current_urlprint(now_url)driver.find_element_by_id('kw').send_keys('selenium')driver.find_element_by_id('su').click()sleep(1)print(’After search================’)# 再次打印當(dāng)前頁(yè)面titletitle = driver.titleprint(title)# 打印當(dāng)前頁(yè)面URLnow_url = driver.current_urlprint(now_url)# 獲取結(jié)果數(shù)目user = driver.find_element_by_class_name(’nums’).textprint(user)#關(guān)閉所有窗口driver.quit()
打印輸出結(jié)果
Before search================百度一下,你就知道https://www.baidu.com/After search================selenium_百度搜索https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=selenium&rsv_pq=a1d51b980000e36e&rsv_t=a715IZaMpLd1w92I4LNUi7gKuOdlAz5McsHe%2FSLQeBZD44OUIPnjY%2B7pODM&rqlang=cn&rsv_enter=0&rsv_sug3=8&inputT=758&rsv_sug4=759搜索工具百度為您找到相關(guān)結(jié)果約7,170,000個(gè)
5.設(shè)置元素等待:參考文獻(xiàn)
6.定位一組元素
定位一組元素的方法與定位單個(gè)元素的方法類似,唯一的區(qū)別是在單詞element后面多了一個(gè)s表示復(fù)數(shù)。
實(shí)例演示
from selenium import webdriverfrom time import sleepdriver =webdriver.Firefox(executable_path ='F:GeckoDrivergeckodriver')driver.get('https://www.baidu.com')driver.find_element_by_id('kw').send_keys('selenium')driver.find_element_by_id('su').click()sleep(1)#1.定位一組元素elements = driver.find_elements_by_xpath(’//div/h3/a’)print(type(elements))#2.循環(huán)遍歷出每一條搜索結(jié)果的標(biāo)題for t in elements: print(t.text) element=driver.find_element_by_link_text(t.text) element.click() sleep(3)driver.quit()
7.多表單切換
在Web應(yīng)用中經(jīng)常會(huì)遇到frame/iframe表單嵌套頁(yè)面的應(yīng)用,WebDriver只能在一個(gè)頁(yè)面上對(duì)元素識(shí)別與定位,對(duì)于frame/iframe表單內(nèi)嵌頁(yè)面上的元素?zé)o法直接定位。這時(shí)就需要通過(guò)switch_to.frame()方法將當(dāng)前定位的主體切換為frame/iframe表單的內(nèi)嵌頁(yè)面中。
方法 說(shuō)明 switch_to.frame() 將當(dāng)前定位的主體切換為frame/iframe表單的內(nèi)嵌頁(yè)面中 switch_to.default_content() 跳回最外層的頁(yè)面
<html> <body> ... <iframe ...> <html> <body> ... <input name='email' >
126郵箱登錄框的結(jié)構(gòu)大概是這樣子的,想要操作登錄框必須要先切換到iframe表單。
from selenium import webdriverdriver = webdriver.Chrome()driver.get('http://www.126.com')driver.switch_to.frame(’x-URS-iframe’)driver.find_element_by_name('email').clear()driver.find_element_by_name('email').send_keys('username')driver.find_element_by_name('password').clear()driver.find_element_by_name('password').send_keys('password')driver.find_element_by_id('dologin').click()driver.switch_to.default_content()driver.quit()
switch_to.frame() 默認(rèn)可以直接取表單的id 或name屬性。如果iframe沒(méi)有可用的id和name屬性,則可以通過(guò)下面的方式進(jìn)行定位。
……#先通過(guò)xpth定位到iframexf = driver.find_element_by_xpath(’//*[@]’)#再將定位對(duì)象傳給switch_to.frame()方法driver.switch_to.frame(xf)……driver.switch_to.parent_frame()
8.多窗口切換
在頁(yè)面操作過(guò)程中有時(shí)候點(diǎn)擊某個(gè)鏈接會(huì)彈出新的窗口,這時(shí)就需要主機(jī)切換到新打開(kāi)的窗口上進(jìn)行操作。WebDriver提供了switch_to.window()方法,可以實(shí)現(xiàn)在不同的窗口之間切換。
方法 說(shuō)明 current_window_handle 獲得當(dāng)前窗口句柄 window_handles 返回所有窗口的句柄到當(dāng)前會(huì)話 switch_to.window() 用于切換到相應(yīng)的窗口,與上一節(jié)的switch_to.frame()類似,前者用于不同窗口的切換,后者用于不同表單之間的切換。
switch_to.window() 用于切換到相應(yīng)的窗口,與上一節(jié)的switch_to.frame()類似,前者用于不同窗口的切換,后者用于不同表單之間的切換。
實(shí)例演示
from selenium import webdriverimport timedriver = webdriver.Chrome('F:ChromeChromeDriverchromedriver')driver.implicitly_wait(10)driver.get('http://www.baidu.com')#1.獲得百度搜索窗口句柄sreach_windows = driver.current_window_handledriver.find_element_by_link_text(’登錄’).click()driver.find_element_by_link_text('立即注冊(cè)').click()#1.獲得當(dāng)前所有打開(kāi)的窗口的句柄all_handles = driver.window_handles#3.進(jìn)入注冊(cè)窗口for handle in all_handles: if handle != sreach_windows: driver.switch_to.window(handle) print(’跳轉(zhuǎn)到注冊(cè)窗口’) driver.find_element_by_name('account').send_keys(’123456789’) driver.find_element_by_name(’password’).send_keys(’123456789’) time.sleep(2) driver.quit()
9.警告框處理
在WebDriver中處理JavaScript所生成的alert、confirm以及prompt十分簡(jiǎn)單,具體做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/ send_keys等方法進(jìn)行操作。
方法 說(shuō)明 text 返回 alert/confirm/prompt 中的文字信息 accept() 接受現(xiàn)有警告框 dismiss() 解散現(xiàn)有警告框 send_keys(keysToSend) 發(fā)送文本至警告框。keysToSend:將文本發(fā)送至警告框。
實(shí)例演示
from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsimport timedriver = webdriver.Chrome('F:ChromeChromeDriverchromedriver')driver.implicitly_wait(10)driver.get(’http://www.baidu.com’)# 鼠標(biāo)懸停至“設(shè)置”鏈接link = driver.find_element_by_link_text(’設(shè)置’)ActionChains(driver).move_to_element(link).perform()# 打開(kāi)搜索設(shè)置driver.find_element_by_link_text('搜索設(shè)置').click()#在此處設(shè)置等待2s否則可能報(bào)錯(cuò)time.sleep(2)# 保存設(shè)置driver.find_element_by_class_name('prefpanelgo').click()time.sleep(2)# 接受警告框driver.switch_to.alert.accept()driver.quit()
10.下拉框選擇操作
導(dǎo)入選擇下拉框Select類,使用該類處理下拉框操作。
from selenium.webdriver.support.select import Select
Select類的方法
方法 說(shuō)明 select_by_value(“選擇值”) select標(biāo)簽的value屬性的值 select_by_index(“索引值”) 下拉框的索引 select_by_visible_testx(“文本值”) 下拉框的文本值
有時(shí)我們會(huì)碰到下拉框,WebDriver提供了Select類來(lái)處理下拉框。 如百度搜索設(shè)置的下拉框,如下圖:[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-7WUxrkEj-1571973999629)(http://orru5lls3.bkt.clouddn.com/select.png)]
from selenium import webdriverfrom selenium.webdriver.support.select import Selectfrom time import sleepdriver = webdriver.Chrome('F:ChromeChromeDriverchromedriver')driver.implicitly_wait(10)driver.get(’http://www.baidu.com’)#1.鼠標(biāo)懸停至“設(shè)置”鏈接driver.find_element_by_link_text(’設(shè)置’).click()sleep(1)#2.打開(kāi)搜索設(shè)置driver.find_element_by_link_text('搜索設(shè)置').click()sleep(2)#3.搜索結(jié)果顯示條數(shù)sel = driver.find_element_by_xpath('//select[@]')Select(sel).select_by_value(’50’) # 顯示50條sleep(3)driver.quit()
11.文件上傳
對(duì)于通過(guò)input標(biāo)簽實(shí)現(xiàn)的上傳功能,可以將其看作是一個(gè)輸入框,即通過(guò)send_keys()指定本地文件路徑的方式實(shí)現(xiàn)文件上傳。
通過(guò)send_keys()方法來(lái)實(shí)現(xiàn)文件上傳:
from selenium import webdriverimport osdriver = webdriver.Firefox()file_path = ’file:///’ + os.path.abspath(’upfile.html’)driver.get(file_path)# 定位上傳按鈕,添加本地文件driver.find_element_by_name('file').send_keys(’D:upload_file.txt’)driver.quit()
12.cookie操作
有時(shí)候我們需要驗(yàn)證瀏覽器中cookie是否正確,因?yàn)榛谡鎸?shí)cookie的測(cè)試是無(wú)法通過(guò)白盒和集成測(cè)試進(jìn)行的。WebDriver提供了操作Cookie的相關(guān)方法,可以讀取、添加和刪除cookie信息。
WebDriver操作cookie的方法:
方法 說(shuō)明 get_cookies() 獲得所有cookie信息 get_cookie(name) 返回字典的key為“name”的cookie信息 add_cookie(cookie_dict) 添加cookie。“cookie_dict”指字典對(duì)象,必須有name 和value 值 delete_cookie(name,optionsString) 刪除cookie信息。“name”是要?jiǎng)h除的cookie的名稱,“optionsString”是該cookie的選項(xiàng),目前支持的選項(xiàng)包括“路徑”,“域” delete_all_cookies() 刪除所有cookie信息實(shí)例演示
from selenium import webdriverimport timebrowser = webdriver.Chrome('F:ChromeChromeDriverchromedriver')browser.get('http://www.youdao.com')#1.打印cookie信息print(’=====================================’)print('打印cookie信息為:')print(browser.get_cookies)#2.添加cookie信息dict={’name’:'name',’value’:’Kaina’}browser.add_cookie(dict)print(’=====================================’)print(’添加cookie信息為:’)#3.遍歷打印cookie信息for cookie in browser.get_cookies(): print(’%s----%sn’ %(cookie[’name’],cookie[’value’])) #4.刪除一個(gè)cookiebrowser.delete_cookie(’name’)print(’=====================================’)print(’刪除一個(gè)cookie’)for cookie in browser.get_cookies(): print(’%s----%sn’ %(cookie[’name’],cookie[’value’]))print(’=====================================’)print(’刪除所有cookie后:’)#5.刪除所有cookie,無(wú)需傳遞參數(shù)browser.delete_all_cookies()for cookie in browser.get_cookies(): print(’%s----%sn’ %(cookie[’name’],cookie[’value’]))time.sleep(3)browser.close()
13.調(diào)用JavaScript代碼
雖然WebDriver提供了操作瀏覽器的前進(jìn)和后退方法,但對(duì)于瀏覽器滾動(dòng)條并沒(méi)有提供相應(yīng)的操作方法。在這種情況下,就可以借助JavaScript來(lái)控制瀏覽器的滾動(dòng)條。WebDriver提供了execute_script()方法來(lái)執(zhí)行JavaScript代碼。
用于調(diào)整瀏覽器滾動(dòng)條位置的JavaScript代碼如下:
<!-- window.scrollTo(左邊距,上邊距); -->window.scrollTo(0,450);
window.scrollTo()方法用于設(shè)置瀏覽器窗口滾動(dòng)條的水平和垂直位置。方法的第一個(gè)參數(shù)表示水平的左間距,第二個(gè)參數(shù)表示垂直的上邊距。其代碼如下:
from selenium import webdriverfrom time import sleep#1.訪問(wèn)百度driver=webdriver.Firefox(executable_path ='F:GeckoDrivergeckodriver')driver.get('http://www.baidu.com')#2.搜索driver.find_element_by_id('kw').send_keys('selenium')driver.find_element_by_id('su').click()#3.休眠2s目的是獲得服務(wù)器的響應(yīng)內(nèi)容,如果不使用休眠可能報(bào)錯(cuò)sleep(2)#4.通過(guò)javascript設(shè)置瀏覽器窗口的滾動(dòng)條位置js='window.scrollTo(100,450);'driver.execute_script(js)sleep(3)driver.close()
通過(guò)瀏覽器打開(kāi)百度進(jìn)行搜索,并且提前通過(guò)set_window_size()方法將瀏覽器窗口設(shè)置為固定寬高顯示,目的是讓窗口出現(xiàn)水平和垂直滾動(dòng)條。然后通過(guò)execute_script()方法執(zhí)行JavaScripts代碼來(lái)移動(dòng)滾動(dòng)條的位置。滾動(dòng)條上下左右滾動(dòng)代碼演示
from selenium import webdriverfrom time import sleepdriver=webdriver.Firefox(executable_path ='F:GeckoDrivergeckodriver')driver.set_window_size(400,400)driver.get('https://www.baidu.com')#2.搜索# driver.find_element_by_id('kw').send_keys('selenium')# driver.find_element_by_id('su').click()#3.休眠2s目的是獲得服務(wù)器的響應(yīng)內(nèi)容,如果不使用休眠可能報(bào)錯(cuò)sleep(10)#4 滾動(dòng)左右滾動(dòng)條---向右js2 = 'var q=document.documentElement.scrollLeft=10000'driver.execute_script(js2)sleep(15)#5 滾動(dòng)左右滾動(dòng)條---向左js3 = 'var q=document.documentElement.scrollLeft=0'driver.execute_script(js3)sleep(15)#6 拖動(dòng)到滾動(dòng)條底部---向下js = 'var q=document.documentElement.scrollTop=10000'driver.execute_script(js)sleep(15)#7 拖動(dòng)到滾動(dòng)條底部---向上js = 'var q=document.documentElement.scrollTop=0'driver.execute_script(js)sleep(15)driver.close()
14.窗口截圖
自動(dòng)化用例是由程序去執(zhí)行的,因此有時(shí)候打印的錯(cuò)誤信息并不十分明確。如果在腳本執(zhí)行出錯(cuò)的時(shí)候能對(duì)當(dāng)前窗口截圖保存,那么通過(guò)圖片就可以非常直觀地看出出錯(cuò)的原因。WebDriver提供了截圖函數(shù)get_screenshot_as_file()來(lái)截取當(dāng)前窗口。
截屏方法:
方法 說(shuō)明 get_screenshot_as_file(self, filename) 用于截取當(dāng)前窗口,并把圖片保存到本地
from selenium import webdriverfrom time import sleepdriver =webdriver.Firefox(executable_path ='F:GeckoDrivergeckodriver')driver.get(’http://www.baidu.com’)driver.find_element_by_id(’kw’).send_keys(’selenium’)driver.find_element_by_id(’su’).click()sleep(2)#1.截取當(dāng)前窗口,并指定截圖圖片的保存位置driver.get_screenshot_as_file('D:baidu_img.jpg')driver.quit()
15.關(guān)閉瀏覽器
在前面的例子中我們一直使用quit()方法,其含義為退出相關(guān)的驅(qū)動(dòng)程序和關(guān)閉所有窗口。除此之外,WebDriver還提供了close()方法,用來(lái)關(guān)閉當(dāng)前窗口。例多窗口的處理,在用例執(zhí)行的過(guò)程中打開(kāi)了多個(gè)窗口,我們想要關(guān)閉其中的某個(gè)窗口,這時(shí)就要用到close()方法進(jìn)行關(guān)閉了。
方法 說(shuō)明 close() 關(guān)閉單個(gè)窗口 quit() 關(guān)閉所有窗口
總結(jié)到此這篇關(guān)于Python Selenium庫(kù)的基本使用教程的文章就介紹到這了,更多相關(guān)Python Selenium庫(kù)使用內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Python如何實(shí)現(xiàn)感知器的邏輯電路2. JS實(shí)現(xiàn)表單中點(diǎn)擊小眼睛顯示隱藏密碼框中的密碼3. JS錯(cuò)誤處理與調(diào)試操作實(shí)例分析4. asp讀取xml文件和記數(shù)5. python基于scrapy爬取京東筆記本電腦數(shù)據(jù)并進(jìn)行簡(jiǎn)單處理和分析6. 原生js實(shí)現(xiàn)的觀察者和訂閱者模式簡(jiǎn)單示例7. Python ellipsis 的用法詳解8. 在終端啟動(dòng)Python時(shí)報(bào)錯(cuò)的解決方案9. vue 驗(yàn)證兩次輸入的密碼是否一致的方法示例10. xml中的空格之完全解說(shuō)
