1. 程式人生 > >Selenium面試問題和答案-4

Selenium面試問題和答案-4

1. 什麼是頁面載入超時

Selenium中有一個 Page Load wait的方法,有時候,我們執行指令碼的速度太快,但是網頁程式還有一部分頁面沒有完全加載出來,就會遇到元素不可見或者元素找不到的異常。為了解決問題,讓指令碼流暢的執行,我們可以通過設定頁面載入超時時間。具體程式碼是這個:driver.manage().timeouts().pageLoadTimeout(10,TimeUnit.SECONDS);

這行作用就是,如果頁面載入超過10秒還沒有完成,就丟擲頁面載入超時的異常。

JavaScript Executor是一個介面,給driver物件提供一個執行javaScript並訪問和修改前端元素屬性和值。

還是有比較多的場景,我們可能或者需要藉助javaScript來實現:

1.元素通過現有定位表示式不能夠實現點選

2.前端頁面試用了ck-editor這個外掛

3.處理時間日期外掛(可能)

4.生成一個alert彈窗

5.拖拽滾動條

基本語法:

JavascriptExecutor js =(JavascriptExecutor) driver;
js.executeScript(Script,Arguments);

3.Selenium中如何實現截圖,如何實現用例執行失敗才截圖

Selenium中提供了一個TakeScreenShot這麼一個介面,這個介面提供了一個getScreenshotAs()方法可以實現全屏截圖。然後我們通過

java中的FileUtils來實現把這個截圖拷貝到儲存截圖的路徑。

程式碼舉例:

File src=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
//
拷貝到我們實際儲存圖片的路徑

FileUtils.copyFile(src,new File("C:/selenium/error.png"));
}
catch (IOException e)
{
System.out.println(e.getMessage());
}

      如果要實現執行用例發現失敗就自動截圖,那麼我們需要把這個截圖方法進行封裝。然後在測試程式碼中的catch程式碼塊去呼叫這個截圖方法。這個我們在POM的框架中一般是把截圖方法封裝到BasePage這個檔案中。

4.Selenium中如何實現拖拽滾動條?

      在Selenium中通過元素定位會自動幫你拖拽到對應位置,所以是沒有自帶的scoll方法。但是這個是有限制,例如當前頁面高度太長,預設是頁上半部分,你定位的元素在頁尾,這個時候可能就會報元素不可見的異常。我們就需要利用javaScript來實現拖拽頁面滾動條。

我們一般可以兩個方法去拖拽,一個是根據拖拽的座標(畫素單位),另外一個是根據拖拽到一個參考元素附件。

程式碼舉例(根據元素座標拖拽):

JavascriptExecutor jse= (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,250)", "");

5.如何實現檔案上傳?

我們在web頁面實現檔案上傳過程中,可以直接把檔案在磁碟完整路徑,通過sendKeys方法實現上傳。如果這種方法不能實現上傳,我們就可能需要藉助第三方工具,我用過一個第三方工具叫autoIT.

還有一個方法是利用robot類:

6.如何處理“不受信任的證書”的問題?

例如,在登入12306網站的時候,如果你沒有下載和安裝過這個網站的根證書,那麼你就會遇到開啟12306網站提示證書不受信任的攔截頁面。

下面舉例火狐和谷歌上處理這個問題的基本程式碼

火狐:

// 建立firefoxprofile
FirefoxProfile profile=new FirefoxProfile();
//
點選繼續瀏覽不安全的網站
profile.setAcceptUntrustedCertificates(true);
//
使用帶條件的profile去建立一個driver物件
WebDriver driver=new FirefoxDriver(profile);

Chrome:

// 建立類DesiredCapabilities的物件
DesiredCapabilities cap=DesiredCapabilities.chrome();
//
設定ACCEPT_SSL_CERTS 變數值為true
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
//
新建一個帶capabilitychromedriver物件
WebDriver driver=new ChromeDriver(cap);

7.什麼是Firefox Profile?

Profile是一組檔案,主要用來記錄使用者在火狐瀏覽器上的私人資訊,例如書籤,密碼,使用者首選項,下載資料夾儲存路徑等。簡單來說,你開啟火狐瀏覽器輸入about://config,這個頁面有些設定選項是可以通過profile來實現修改的。

8.如何實現滑鼠懸停,鍵盤事件和拖拽動作?

Webdriver中,處理鍵盤事件和滑鼠事件,一般使用Actions類提供的方法,包括滑鼠懸停,拖拽和組合鍵輸入。

這裡介紹幾個方法

方法:clickAndHold()

使用場景:找到一個元素,點選滑鼠左鍵,不放手。自己可以點選滑鼠不鬆開試試這個場景。

方法:contentClick()

使用場景:模擬滑鼠右鍵點選,一般右鍵會帶出選單來。

方法:doubelClick()

使用場景:模擬滑鼠雙擊

方法:dragAndDrop(source,target)

使用場景:模擬從source這個位置,拖拽一個元素到target位置

鍵盤事件方法:keyDown(keys.ALT), keyUp(keys.SHIFT)

使用場景:點選鍵盤事件,分為兩個動作,一個點選鍵盤,第二個動作是釋放點選(鬆開)

相關推薦

Selenium面試問題答案-4

1. 什麼是頁面載入超時Selenium中有一個 Page Load wait的方法,有時候,我們執行指令碼的速度太快,但是網頁程式還有一部分頁面沒有完全加載出來,就會遇到元素不可見或者元素找不到的異常

Selenium面試問題答案-1

       在學習完Selenium的大部分介面或者方法之後,你可能會去面試自動化測試,主要是Selenium的自動化測試。下面這些問題總結,可能會對你有所幫助。 1. 什麼是Selenium? S

Selenium面試問題答案-5

1.findElement 和 FindElements有什麼區別?首先,兩個都是查詢元素,都支援八大元素定位方法。findElement()得到的只有一個元素,如果根據提供的元素定位方式找不到,會報n

40個Java集合面試問題答案

dex 生產 含義 locking rul 有意義 remove 可用 dal 1.Java集合框架是什麽?說出一些集合框架的優點? 每種編程語言中都有集合,最初的Java版本包含幾種集合類:Vector、Stack、HashTable和Array。隨著集合的廣泛使用,Ja

memcached面試26題答案

Memcached是什麼,有什麼作用? Memcached是一個開源的,高效能的記憶體綬存軟體,從名稱上看Mem就是記憶體的意思,而Cache就是快取的意思。Memcached的作用:通過在事先規劃好的記憶體空間中臨時綬存資料庫中的各類資料,以達到減少業務對資料庫的直接高併發訪問,從而達到提升資料庫的訪問效

web面試問題答案,你值得一看

web面試問題和答案,你值得看看1)什麼是Web服務? Web服務是用於通過網路傳送兩個裝置的軟體系統。 2)Web服務如何工作? Web服務用於通過使用開放標準(如HTML,XML,WSDL和SOAP)在各種應用程式之間進行通訊。您可以在Solaris上構建基於Java的Web服務,該

阿里p8架構師分享:Java經典基礎與高階面試36題答案(下)

19.為什麼集合類沒有實現Cloneable和Serializable介面? 克隆(cloning)或者是序列化(serialization)的語義和含義是跟具體的實現相關的。因此,應該由集合類的具體實現來決定如何被克隆或者是序列化。 20.什麼是迭代器(Iterator)? Itera

MySQL面試50題答案

1)Mysql中有哪幾種鎖? 1.表級鎖:開銷小,加鎖快;不會出現死鎖;鎖定粒度大,發生鎖衝突的概率最高,併發度最低。 2.行級鎖:開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖衝突的概率最低,併發度也最高。 3.頁面鎖:開銷和加鎖時間界於表鎖和行鎖之間;會出現死鎖;鎖定粒度界

精選多執行緒面試題目答案,對多執行緒理解不是很到位的快來看了~

多執行緒,相信對於很多小白來說是噩夢一般的東西吧,別怕,接下來我們就來把多執行緒的一些面試題一一解讀,希望讀完這篇文章之後,能夠對多執行緒有一個更深入的瞭解。 1. 多執行緒使用的優缺點? 優點: (1)多執行緒技術使程式的響應速度更快 (2)當前沒有進行處理的任務可以將處理器時間讓

程式設計之法面試演算法心得-1.4字串轉換成整數

一、題目描述 輸入一個由數字組成的字串,請把它們轉換成整數並輸出。如輸入字串為“123”,輸出整數123。 python化成整數直接可以int(str),現在是自己實現這個函式。 二、解法 這道題看起來比前面的的幾道題都簡單許多,只需要把輸入字串的各個字元的acsii碼減去‘0’

Java經典基礎與高階面試36題答案

1.”static”關鍵字是什麼意思?Java中是否可以覆蓋(override)一個private或者是static的方法? “static”關鍵字表明一個成員變數或者是成員方法可以在沒有所屬的類的例項變數的情況下被訪問。 Java中static方法不能被覆蓋,因為方法覆

java面試題--40個Java集合面試問題答案

原文連結:https://www.cnblogs.com/tlnshuju/p/7324703.html 英文原文:http://www.javacodegeeks.com/2013/02/40-java-collections-interview-questions-and

JVM面試題目答案

JVM面試題目和答案 JVM記憶體模型 1.堆:存放物件例項,幾乎所有的物件例項都在這裡分配記憶體 2.虛擬機器棧 3.方法區:儲存已被虛擬機器載入的類元資料資訊 4.程式計數器:當前執行緒所執行的位元組碼的行號指示器 總

Spring面試問題答案

1.Spring框架是什麼?Spring框架是一個開放原始碼框架,用於解決企業應用程式開發的複雜性。Spring框架的主要優勢之一是它的分層架構,它允許您對所使用的元件進行選擇。Spring的主要模組是Spring核心、Spring AOP和Spring MVC。2.Spri

基於Selenium的Web自動化測試實戰 課程中面試題答案整理

1.你如何用Selenium測試?Selenium+Maven+TestNG+Jekins2.你在測試中常遇到哪些問題?這個常見的比如定位問題,3.如何解決問題?先思考,然後百度,考慮網速、電腦配置等原因,這題主要看重解決問題的能力和思維。4.Selenium的工作原理?可以

25個面試中最常問的問題答案

原文連結:https://dzone.com/articles/top-25-java-inte

史上最強Dubbo面試26題答案:核心元件+服務治理+架構設計等

開發十年,就只剩下這套架構體系了! >>>   

JAVA面試--史上最全 69 道 Spring 面試題答案

開發十年,就只剩下這套架構體系了! >>>   

史上最強多執行緒面試44題答案:執行緒鎖+執行緒池+執行緒同步等

1、併發程式設計三要素? 1)原子性 原子性指的是一個或者多個操作,要麼全部執行並且在執行的過程中不被其他操作打斷,要麼就全部

這些HTML、CSS知識點,面試平時開發都需要 No8-No9(知識點:媒體操作、構建表單)

password 添加屬性 自己 oval 系列 文件上傳 htm color eth 系列知識點匯總 這些HTML、CSS知識點,面試和平時開發都需要 No1-No4(知識點:HTML、CSS、盒子模型、內容布局) 這些HTML、CSS知識點,