第3章 Selenium WebDriver的高級應用_第1頁
第3章 Selenium WebDriver的高級應用_第2頁
第3章 Selenium WebDriver的高級應用_第3頁
第3章 Selenium WebDriver的高級應用_第4頁
第3章 Selenium WebDriver的高級應用_第5頁
已閱讀5頁,還剩103頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章SeleniumWebDriver的高級應用《自動化測試應用教程(Web+App)》學習目標/Target掌握Select類的使用,能夠實現下拉選擇框操作掌握彈出框操作的方式,能夠處理常見的輸入框、確認框和提示框掌握截圖操作的方式,能夠對腳本執行出錯時的窗口進行截圖保存掌握獲取瀏覽器窗口句柄的方法,能夠實現多窗口切換操作掌握多表單切換的方式,能夠定位網頁中有frame類型標簽的頁面元素學習目標/Target掌握元素等待的方式,能夠解決因頁面元素未加載出來而報錯的問題掌握獲取、添加、刪除Cookie的方式,能夠靈活處理Cookie掌握文件的上傳與下載的方式,能夠實現文件的上傳和下載功能掌握執行JavaScript腳本的方式,能夠控制瀏覽器滾動條和處理日期控件章節概述/Summary在第2章中,我們已經初步學習了SeleniumWebDriver的基礎應用,并能夠為Web項目編寫簡單的測試腳本。然而在實際的測試項目中還需要對Web項目進行一些高級的操作,例如操作下拉選擇框、彈出框、頁面截圖等,故需要進一步學習Web項目的高級操作。下面將對SeleniumWebDriver的高級應用進行講解。目錄/Contents0102下拉選擇框操作彈出框操作03截圖操作04多窗口切換05多表單切換目錄/Contents0607元素等待Cookie處理08文件上傳與下載09執行JavaScript腳本下拉選擇框操作3.13.1下拉選擇框操作

先定一個小目標!掌握Select類的使用,能夠實現下拉選擇框操作3.1下拉選擇框操作當我們遇到測試網頁中的下拉選擇框時,該如何讓程序自動選擇下拉選擇框中的選項呢?3.1下拉選擇框操作在Web自動化測試過程中,對下拉選擇框中的選項進行定位與操作有兩種方式。方式1首先定位到要操作的option元素(下拉選擇框中的選項),然后執行單擊操作。方式2使用SeleniumWebDriver中的Select類定位下拉選擇框中指定的選項。3.1下拉選擇框操作由于第一種方式操作起來比較煩瑣,而第二種方式能更快地對下拉選擇框進行操作,所以通常我們會使用第二種方式。在使用第二種方式定位下拉選擇框中的指定選項時,需要首先在項目中導入Select類,具體代碼如下。fromselenium.webdriver.support.selectimportSelect3.1下拉選擇框操作根據索引值定位下拉選擇框中的指定選項時,需要調用select_by_index()方法,該方法的語法格式如下。select_by_index(index)#參數index表示下拉選擇框中選項的索引值下拉選擇框中選項的索引值是從0開始遞增的,如果想要選擇下拉選擇框中的第2個選項,則可以將select_by_index()方法中傳遞的索引值設置為1,即select_by_index(1)。1.根據索引值定位指定選項3.1下拉選擇框操作根據value值定位下拉選擇框中的指定選項時,需要調用select_by_value()方法,該方法的語法格式如下。select_by_value(value)參數value表示<select>標簽(該標簽用于顯示一個下拉選擇框)中option元素的value屬性值。2.根據value值定位指定選項3.1下拉選擇框操作例如,在HTML頁面中使用<select>標簽顯示一個下拉選擇框的代碼如下。<selectname="selecta"id="selectA"><optionvalue="bj">北京</option><optionvalue="sh">上海</option><optionvalue="gz">廣州</option><optionvalue="sz">深圳</option></select>上述代碼用于顯示一個下拉選擇框,該下拉選擇框中的選項分別是“北京”、“上海”、“廣州”和“深圳”,如果想要選擇“深圳”選項,該選項對應的option元素的value屬性值為“sz”,可以調用select_by_value("sz")方法實現選擇“深圳”選項的操作。3.1下拉選擇框操作根據文本定位下拉選擇框中的指定選項時,需要調用select_by_visible_text()方法,該方法的語法格式如下。select_by_visible_text(text)參數text表示<select>標簽中option元素的文本內容。3.根據文本定位指定選項3.1下拉選擇框操作下面以一個用戶注冊頁面為例,演示如何使用Select類中提供的3種方式操作頁面中“所在城市”的下拉選擇框。用戶注冊頁面效果如下圖所示。3.1下拉選擇框操作使用Select類提供的3種方式,定位“所在城市”下拉選擇框中指定選項的具體代碼如下。[單擊查看源碼]彈出框操作3.2

先定一個小目標!3.2彈出框操作掌握彈出框操作的方式,能夠處理常見的輸入框、確認框和提示框3.2彈出框操作彈出框通常分為3種類型,分別是輸入框(prompt)、提示框(alert)和確認框(confirm)。當頁面中出現這些彈出框時,我們需要對這些彈出框進行一些操作,然后才能對網頁進行下一步操作或瀏覽網頁中的其他內容。在Web自動化測試過程中,如果遇到網頁中有彈出框的情況,可以通過SeleniumWebDriver提供的對應方法處理這些彈出框,以便于測試網頁中的其他信息。3.2彈出框操作在SeleniumWebDriver中,輸入框、提示框和確認框都是Alert類的對象,在處理這些彈出框時,首先需要獲取Alert類的對象,獲取該對象的語法格式如下。driver.switch_to.alert3.2彈出框操作獲取Alert類的對象后,需要調用Alert類的方法對彈出框進行操作,Alert類的常用方法如下表所示。方法說明accept()接收彈出框信息,例如單擊彈出框的“確認”按鈕dismiss()取消彈出框信息,例如單擊彈出框的“取消”按鈕send_keys()向彈出框輸入信息,該方法只對包含輸入框的彈出框有效除了表中介紹的3個常用方法外,Alert類還有一個常用的屬性text,該屬性用于獲取彈出框中的文本信息。3.2彈出框操作<html><head><title></title></head><body><inputtype="button"value="提示框"id="alerta"onclick="alert('我是提示框')"><br/><inputtype="button"value="確認框"id="confirma"onclick="confirm('我是確認框,確定要刪除商品信息嗎?')"><br/><inputtype="button"value="輸入框"id="prompta"onclick="prompt('我是輸入框,請輸入用戶名:')"></body></html>以一個彈出框頁面為例,演示如何對頁面中彈出的輸入框、提示框和確認框進行操作,具體代碼如下。3.2彈出框操作將編寫好的彈出框頁面代碼命名為alert.html并保存,然后在瀏覽器中打開該文件,彈出框頁面如下圖。單擊“提示框”按鈕,頁面中會彈出一個提示框3.2彈出框操作單擊“確認框”按鈕,頁面中會彈出一個確認框3.2彈出框操作單擊“輸入框”按鈕,頁面中會彈出一個輸入框3.2彈出框操作下面演示調用Alert類中的text屬性,分別獲取彈出框頁面中提示框、確認框和輸入框中的文本信息并輸出到控制臺,具體代碼如下。[單擊查看源碼]截圖操作3.33.3截圖操作

先定一個小目標!掌握截圖操作的方式,能夠對腳本執行出錯時的窗口進行截圖保存3.3截圖操作在自動化測試的過程中,如果測試腳本執行失敗,測試人員通常會去查看測試腳本運行的錯誤信息,分析腳本執行失敗的原因。但有時候程序打印的錯誤信息并不十分明確,測試人員很難判斷腳本執行失敗的原因。在自動化測試腳本執行的過程中,如果通過截圖的方式將測試過程中操作的場景以圖片的形式展示出來,測試人員就能更快捷地分析出腳本執行失敗的原因。3.3截圖操作SeleniumWebDriver提供的獲取截圖的方法有4個,分別是get_screenshot_as_file()方法、

save_screenshot()方法、

get_screenshot_as_base64()方法和get_screenshot_as_png()方法。3.3截圖操作get_screenshot_as_file()方法用于獲取頁面截圖,并將截圖保存到指定的路徑下,該方法的語法格式如下。get_screenshot_as_file(filename)#參數filename是頁面截圖的存儲路徑,該存儲路徑為絕對路徑例如,get_screenshot_as_file(“D:\\baidu.png”),程序調用該方法后,會將頁面截圖保存在D盤,該頁面截圖的文件名稱為baidu.png。(1)get_screenshot_as_file()方法3.3截圖操作save_screenshot()方法用于保存頁面截圖,該截圖文件的后綴名為.png,該方法的語法格式如下。save_screenshot(filename)

#參數filename是頁面截圖的文件名稱save_screenshot()方法與get_screenshot_as_file()方法的作用相同,不同的是save_screenshot()方法將截圖保存在項目的根目錄中,而get_screenshot_as_file()方法將截圖保存在指定的路徑下。(2)save_screenshot()方法3.3截圖操作get_screenshot_as_base64()方法用于獲取頁面截圖的base64編碼字符串,該方法的語法格式如下。get_screenshot_as_base64()get_screenshot_as_png()方法用于獲取頁面截圖的二進制數據,該方法的語法格式如下。get_screenshot_as_png()(3)get_screenshot_as_base64()方法(4)get_screenshot_as_png()方法3.3截圖操作下面以閑云旅游網站為例,演示如何調用get_screenshot_as_file()、save_screenshot()、get_screenshot_as_base64()和get_screenshot_as_png()等方法對頁面進行截圖并保存或輸出,具體代碼如下。[單擊查看源碼]多窗口切換3.43.4多窗口切換

先定一個小目標!掌握獲取瀏覽器窗口句柄的方法,能夠實現多窗口切換操作3.4多窗口切換多窗口切換是指在頁面中彈出的多個新窗口之間切換。每個瀏覽器窗口都有一個唯一標識,該標識被稱為句柄(handle)。多窗口切換主要依賴于瀏覽器窗口的句柄,通過獲取瀏覽器窗口的句柄來區分不同的窗口,根據獲取的窗口句柄實現指定窗口的切換。3.4多窗口切換SeleniumWebDriver提供了2個獲取瀏覽器窗口句柄的屬性,分別是current_window_handle和window_handles,這2個屬性被調用的示例代碼如下。#獲取當前窗口的句柄driver.current_window_handle#獲取所有窗口的句柄driver.window_handles3.4多窗口切換SeleniumWebDriver還提供了window()方法,該方法用于切換瀏覽器窗口。window()方法被調用的示例代碼如下。#切換到指定窗口driver.switch_to.window(handle)window()方法中傳遞的參數handle是要切換的指定窗口句柄。3.4多窗口切換下面以京東商城首頁為例,演示如何獲取京東首頁窗口的句柄和瀏覽器中所有窗口的句柄,然后根據獲取的句柄實現切換到指定窗口的功能,具體代碼如下。[單擊查看源碼]多表單切換3.53.5多表單切換

先定一個小目標!掌握多表單切換的方式,能夠定位網頁中有frame類型標簽的頁面元素3.5多表單切換多表單切換是對Web頁面中包含frame類型標簽的頁面部分進行的切換。在網頁中frame類型的標簽是一種表單框架,該類型的標簽作用是在當前頁面的指定區域中顯示另一個頁面的元素。3.5多表單切換<frameset><frameset>標簽可以在一個頁面中設置一個或多個框架,不影響正常的元素定位。<frame><frame>標簽是整個頁面的框架。<iframe><iframe>標簽是頁面中內嵌的框架。frame類型的3種標簽3.5多表單切換SeleniumWebDriver提供了switch_to.frame()方法來切換帶有<iframe>標簽的頁面,該方法的語法格式如下。switch_to.frame(frame_reference)參數frame_reference可以是frame類型的標簽中name屬性的值或id屬性的值。3.5多表單切換注意需要注意的是,在定位多表單中的元素時,還需要調用default_content()方法返回到主頁面,才能對另外一個frame類型的表單中的元素進行定位。3.5多表單切換以一個多表單切換頁面為例,演示如何在頁面中切換帶有<iframe>標簽的頁面,多表單切換頁面如下圖所示。頁面中包含2個<iframe>標簽,當在“注冊用戶”頁面中輸入完一個注冊賬號后,想要在“登錄用戶”頁面中輸入登錄賬號,此時就需要調用switch_to.frame()來切換這2個表單頁面。3.5多表單切換下面通過代碼演示注冊用戶頁面和登錄用戶頁面的切換操作,具體代碼如下。[單擊查看源碼]元素等待3.63.6.1顯式等待

先定一個小目標!掌握元素等待的方式,能夠靈活應用顯式等待的方法解決因頁面元素未加載出來而報錯的問題3.6.1顯式等待元素等待是指在定位頁面元素時,如果沒有找到頁面元素,測試腳本會在指定時間內一直等待的過程。顯式等待指的是定位指定元素時,如果能定位到指定元素,則測試程序直接返回該元素,不觸發等待;如果無法定位到指定元素,則需要等待一段時間后再進行定位;如果超過程序設置的最長等待時間還沒有定位到指定元素,則程序會拋出超時異常(TimeoutException)。3.6.1顯式等待實現顯式等待需要調用的方法為WebDriverWait(),由于該方法存在于WebDriverWait類中,所以調用WebDriverWait()方法之前首先要在程序中導入WebDriverWait類,具體代碼如下。fromselenium.webdriver.support.waitimportWebDriverWait3.6.1顯式等待WebDriverWait()方法的語法格式如下。WebDriverWait(driver,timeout,poll_frequency=POLL_FREQUENCY,ignored_exceptions=None)driver:必選參數,表示瀏覽器驅動對象。timeout:必選參數,表示超時時間,即最長的顯式等待時間,單位為秒。poll_frequency:可選參數,表示查找指定元素間隔的時間,單位為秒。該參數的默認值為常量POLL_FREQUENCY,該常量值為0.5,也就是查找指定元素的時間間隔默認為0.5秒。ignored_exceptions:可選參數,表示可忽略的異常集合。當調用until()方法或until_not()方法時,如果程序拋出的異常是這個集合中的異常,則程序不會中斷,會繼續等待;如果拋出的是這個集合外的異常,則程序會中斷并拋出異常。在這個異常集合中默認只有NoSuchElementException異常。3.6.1顯式等待在程序中進行顯式等待時,WebDriverWait()方法必須與until()方法或until_not()方法結合使用。until()方法用于調用一個查找元素的匿名函數,如果該函數的返回值為True,表示查找到元素;如果該函數的返回值為False,表示未找到元素;當未找到元素時,程序會每隔一段時間調用一次until()方法來查找元素,直到查找到元素為止。until()方法的語法格式如下。until(method,message='

')method:必選參數,該參數是一個匿名函數,在該函數中調用了查找頁面元素的方法。在規定的等待時間內,程序每隔一段時間會調用一次該匿名函數,直到該函數的返回值為True。message:可選參數,表示超時后的異常信息,如果程序超時,則會拋出超時異常TimeoutException,該參數的值會傳遞到TimeoutException()方法中。3.6.1顯式等待如果想要對頁面中的“登錄”按鈕設置顯式等待,顯式等待的超時時間為5秒,查找元素的間隔時間為0.5秒,“登錄”按鈕的By.CLASS_NAME屬性值為lg-button,那么實現對“登錄”按鈕設置顯式等待的示例代碼如下。element=WebDriverWait(driver,5,0.5).until(lambdap:p.find_element(By.CLASS_NAME,"lg-button"))需要注意的是,until()方法中傳遞的參數是一個匿名函數,在該函數中調用了find_element()方法來查找“登錄”按鈕,如果該函數的返回值為True,則表示查找到“登錄”按鈕;如果該函數的返回值為False,表示未找到“登錄”按鈕。3.6.1顯式等待until_not()方法也用于調用一個查找元素的匿名函數,如果該函數的返回值為True,表示查找不到元素;如果該函數的返回值為False,表示查找到元素;當未找到元素時,程序會每隔一段時間調用一次until_not()方法查找元素,直到查找到元素為止。until_not()方法的語法格式如下。until_not(method,message='')使用WebDriverWait()方法與until_not()方法實現“登錄”按鈕的顯式等待,具體示例代碼如下。element=WebDriverWait(driver,5,0.5).until_not(lambdap:p.find_element(By.CLASS_NAME,"lg-button"))3.6.1顯式等待以閑云旅游網站為例,演示如何對旅游攻略頁面中的“寫游記”按鈕進行顯式等待,旅游攻略頁面如下圖所示。3.6.1顯式等待下面演示調用WebDriverWait()方法和until()方法設置“寫游記”按鈕元素的顯式等待,具體代碼如下。[單擊查看源碼]3.6.2隱式等待

先定一個小目標!掌握元素等待的方式,能夠靈活應用隱式等待的方法解決因頁面元素未加載出來而報錯的問題3.6.2隱式等待隱式等待指的是定位頁面元素時,如果能定位到元素,則測試程序直接返回該元素,不觸發等待;如果定位不到該元素,則需要等待一段時間后再進行定位。如果超過程序設置的最長等待時間還沒有定位到指定元素,則程序會拋出元素不存在的異常(NoSuchElementException)。3.6.2隱式等待在程序中設置隱式等待時需要調用implicitly_wait()方法,該方法的語法格式如下。implicitly_wait(timeout)#參數timeout表示隱式等待的最長等待時間,單位為秒。

如果想要在測試代碼中設置登錄頁面的隱式等待,等待的時間為10秒,則該隱式等待的示例代碼如下。driver.implicitly_wait(10)3.6.2隱式等待需要注意的是,隱式等待是全局設置,也就是說在測試代碼中只要設置了一次隱式等待,則該隱式等待會作用于頁面中的所有元素。注意3.6.2隱式等待以閑云旅游網站為例,演示如何對該項目首頁中的所有元素進行隱式等待,閑云旅游網站的首頁如下圖所示。3.6.2隱式等待下面演示對閑云旅游網站的首頁中的所有元素進行隱式等待,等待時間為10秒,具體代碼如下。fromseleniumimportwebdriverdriver=webdriver.Chrome()#設置隱式等待為10秒driver.implicitly_wait(10)url="/"driver.get(url)driver.maximize_window()city=driver.find_element_by_xpath("http://*[@id='__layout']/""div/section/div[2]/div/div[2]/input")city.send_keys("廣州")driver.find_element_by_class_name("ell-icon-search").click()driver.quit()多學一招顯式等待與隱式等待的區別010203123在程序中設置顯式等待時,需要調用WebDriverWait()方法,并且該方法要與until()方法與until_not()結合使用。設置隱式等待時,需要調用的方法為implicitly_wait()。調用的方法不同顯式等待只對頁面中的指定元素有效,隱式等待對頁面中的所有元素都有效。作用域不同設置顯式等待的程序超時后,會拋出超時異常TimeoutException。設置隱式等待的程序超時后,會拋出元素不存在的異常NoSuchElementException。超時后,拋出的異常不同3.6.3強制等待

先定一個小目標!掌握元素等待的方式,能夠靈活應用強制等待的方法解決因頁面元素未加載出來而報錯的問題3.6.3強制等待強制等待主要是通過調用sleep()函數讓程序休眠一段時間,時間到達后,程序再繼續運行。sleep()函數的語法格式如下。sleep(seconds)參數seconds表示程序休眠的時間,也就是強制等待的時間,單位為秒。如果想讓程序休眠2秒,則可以直接在程序中調用sleep(2)來實現,即當程序運行到代碼sleep(2)時,程序會暫停運行,暫停2秒后,再繼續運行其他代碼。3.6.3強制等待一般情況下,測試人員在調試腳本代碼的過程中,為了容易查看到頁面中的每一步操作,會使用強制等待。雖然強制等待的使用方式比較簡單,但是如果強制等待的時間設置得太短,頁面元素還沒加載出來,程序就執行了腳本代碼,此時程序仍然會報錯;如果強制等待的時間設置得太長,則又會浪費程序的執行時間,影響腳本的整體運行速度,降低自動化測試的效率。因此,在自動化測試的腳本代碼中盡量少設置強制等待。Cookie處理3.73.7Cookie處理

先定一個小目標!掌握獲取、添加、刪除Cookie的方式,能夠靈活處理Cookie3.7Cookie處理Cookie是一個客戶端技術,該技術主要由Web服務器生成的數據以Cookie的形式保存在瀏覽器的小文本文件中。當用戶通過瀏覽器訪問服務器中的Web資源時,瀏覽器會自動將之前保存的Cookie數據傳遞給服務器,服務器通過Cookie數據做出相應的操作。3.7Cookie處理Cookie是以鍵值對的方式存儲數據的,它只能存儲少量的數據,不同的瀏覽器存儲Cookie的容量也是不同的,一般不超過4KB。Cookie經常用于存儲與用戶相關的信息,例如,存儲用戶的登錄狀態、用戶名和用戶密碼等信息。3.7Cookie處理在自動化測試的過程中,SeleniumWebDriver提供了get_cookie()、get_cookies()、add_cookie()、delete_cookie()、delete_all_cookies()等方法對Cookie進行獲取、添加和刪除等操作,其中get_cookie()方法和get_cookies()方法可以通過獲取Cookie信息來驗證Cookie的正確性。3.7Cookie處理Cookie的獲取、添加和刪除的具體語法格式如下。#獲取指定Cookieget_cookie(name)#獲取網站所有Cookieget_cookies()#添加Cookieadd_cookie(cookie_dict)#刪除指定Cookiedelete_cookie(name)#刪除所有的Cookiedelete_all_cookies()參數name表示Cookie的名稱參數cookie_dict表示字典對象3.7Cookie處理下面以百度搜索頁面為例,演示如何獲取、添加和刪除Cookie,具體代碼如下。[單擊查看源碼]文件上傳與下載3.83.8文件上傳與下載

先定一個小目標!掌握文件的上傳與下載的實現方式,能夠實現文件的上傳和下載功能3.8文件上傳與下載1.文件上傳當測試頁面中的文件上傳功能時,通常有兩種情況,不同情況的測試方式不同。第一種情況:如果頁面中的“上傳”按鈕是由<input/>標簽顯示,該標簽中的type屬性的值為“file”,此種情況可以首先定位“上傳”按鈕,然后調用send_keys()方法將要上傳的文件上傳到頁面中。3.8文件上傳與下載例如,測試一個員工導入頁面的上傳功能,該頁面中的“上傳”按鈕是由<input/>標簽顯示,單擊“點擊上傳”按鈕,上傳E盤中名為image.png的圖片,只需要在測試的腳本代碼中添加如下代碼即可實現文件的上傳功能。element=driver.find_element_by_name("file").send_keys("E:\\image.png")3.8文件上傳與下載第二種情況:如果頁面中的“上傳”按鈕不是由<input/>標簽顯示,單擊“上傳”按鈕會彈出一個打開上傳文件的對話框,該對話框是Windows系統的一個窗口。由于自動化測試中的腳本代碼無法直接對Window窗口進行操作,所以需要借助第三方工具AutoIt來測試文件的上傳功能。3.8文件上傳與下載AutoIt是一款免費的編譯工具,它可以協助Selenium完成Web自動化測試過程中的窗口操作部分。AutoIt工具的工作原理是首先在該工具中編寫腳本代碼定位Window窗口中的元素屬性值,然后將腳本代碼編譯成可執行的文件,最后在自動化測試過程中,直接調用可執行文件實現文件的上傳與下載功能。3.8文件上傳與下載(1)安裝AutoIt工具首先訪問AutoIt官方網站,在AutoIt工具的下載界面中單擊“DownloadAutoIt”按鈕下載AutoIt工具的安裝包,AutoIt工具的下載界面如下圖所示。使用AutoIt工具測試文件上傳功能的具體步驟如下。3.8文件上傳與下載將鼠標放在(Frozen)AutoItv3WindowInfo窗口中的“FinderTool”按鈕上,按下鼠標左鍵并將“FinderTool”按鈕上的圖標

依次拖動到文件名輸入框控件和“打開”按鈕控件上,識別輸入框控件與“打開”按鈕控件,并將識別到這些控件的信息顯示在(Frozen)AutoItv3WindowInfo窗口中。(2)識別Windows窗口中的控件3.8文件上傳與下載STEP02當Window窗口中的控件識別成功后,在(Frozen)AutoItv3WindowInfo窗口的編輯框區域會顯示識別到的控件信息,文件名輸入框控件和“打開”按鈕控件信息如下圖所示。文件名輸入框控件信息“打開”按鈕控件信息3.8文件上傳與下載首先打開AutoIt工具安裝目錄下的SciTE文件夾,在該文件夾下雙擊SciTE.exe文件,啟動SciTE編輯器,然后根據識別的控件信息,在SciTE編輯器中編寫AutoIt腳本,如下圖所示。(3)編寫AutoIt腳本3.8文件上傳與下載首先單擊SciTE編輯器菜單欄中的Tools選項,然后選擇Go選項,運行AutoIt腳本。(4)運行AutoIt腳本3.8文件上傳與下載首先打開AutoIt工具安裝目錄下的Aut2Exe文件夾,在該文件夾下啟動Aut2exe_x64.exe應用程序,彈出Aut2Exev3-AutoItScripttoEXEConverter窗口,如下圖所示。設置AutoIt腳本文件的路徑選擇AutoIt腳本文件的后綴名(5)將AutoIt腳本文件生成后綴名為.exe的文件3.8文件上傳與下載下面以一個測試文件上傳頁面為例,演示如何測試文件的上傳功能,測試文件上傳頁面如下圖所示。(6)測試文件的上傳功能3.8文件上傳與下載下面編寫自動化測試腳本代碼,并借助AutoIt工具實現測試文件的上傳功能,具體代碼如下。fromtimeimportsleepfromseleniumimportwebdriverimportosfromselenium.webdriverimportActionChainsdriver=webdriver.Chrome()driver.maximize_window()driver.get("E:/TestProject/upload.html")button_element=driver.find_element_by_name("uploadFile")ActionChains(driver).click(button_element).perform()os.system("D:\\AutoitScript.exe")sleep(2)driver.quit()導入os操作系統接口模塊,該模塊提供了一些方便使用操作系統相關功能的函數os.system()方法用于執行D盤中的AutoitScript.exe文件3.8文件上傳與下載運行測試文件上傳功能的代碼后,會彈出一個Window窗口,如下圖所示。需要注意的是,此時不能關閉Window窗口,需要再次運行AutoIt腳本才能實現自動上傳文件的功能。3.8文件上傳與下載由于在Web自動化測試的過程中,SeleniumWebDriver沒有提供相應的方法來測試文件的下載功能,所以當需要測試文件的下載功能時,可以在程序中添加瀏覽器的配置項,例如禁止彈出窗口、設置文件下載后的路徑等。2.文件下載3.8文件上傳與下載下面以訪問傳智健康后臺管理系統為例,在Chrome瀏覽器中訪問系統中的“預約設置”頁面來測試下載該頁面中的模板文件,“預約設置”頁面如下圖所示。3.8文件上傳與下載下面編寫自動化測試腳本代碼,實現測試下載傳智健康后臺管理系統中“預約設置”頁面的模板文件,具體代碼如下。[單擊查看源碼]3.8文件上傳與下載運行測試下載文件的代碼后,打開計算機D盤的downloadFile文件夾,如下圖所示。該文件為下載的模板文件,說明在程序中通過添加瀏覽器的配置項,能夠測試文件的下載功能。執行JavaScript腳本3.93.9.1JavaScript腳本控制瀏覽器滾動條

先定一個小目標!掌握執行JavaScript腳本的方式,能夠控制瀏覽器滾動條3.9.1JavaScript腳本控制瀏覽器滾動條在瀏覽網頁的過程中,我們經常會遇到頁面超過一屏的情況,這時候需要通過滑動滾動條來繼續瀏覽或操作剩余的頁面內容,如果在自動化測試中遇到此種情況,可以通過執行JavaScript腳本來操作瀏覽器的滾動條,實現自動控制瀏覽器滾動條的效果。3.9.1JavaScript腳本控制瀏覽器滾動條瀏覽器的滾動條分為縱向和橫向兩種,縱向滾動條可以控制瀏覽器中的頁面進行上下滑動;橫向滾動條可以控制瀏覽器中的頁面進行左右滑動。3.9.1JavaScript腳本控制瀏覽器滾動條在JavaScript腳本中,可以通過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論