1. 程式人生 > >自動化測試Selenium最新面試題和對應答案!

自動化測試Selenium最新面試題和對應答案!

問題1:Selenium是什麼,流行的版本有哪些?

Selenium是基於Web的最流行的UI自動化測試工具。它提供了一組支援多種平臺的公開API(例如Linux,Windows,Mac OS X等)。此外,像Google Chrome,Mozilla Firefox,Internet Explorer和Safari等所有現代瀏覽器都可以用來執行Selenium測試。它也涵蓋了Android平臺,其中Appium是實現Selenium Webdriver介面的工具,用於移動自動化。

值得注意的是,除了許多後來的小型版本之外,硒還有三個主要版本:

Selenium 1.0或Selenium RC,於2004年初發布,提供了一個使用伺服器與瀏覽器交換命令和響應的API集。

Selenium 2.0或Selenium Webdriver,在2011年中推出,並在Selenium功能中引入了一系列重大改進。這些新的API完全取代了伺服器元件,並與目標瀏覽器本地互動。

Selenium 3.0,這個版本是在2016年末釋出的大版本。它帶來的主要變化是引入Webdriver API的W3C規範,用於瀏覽器自動化。也就是說,每個主要的瀏覽器都會有自己的Webdriver API來實現功能。

問題2:你如何從命令列啟動Selenium RC?

// 簡單的啟動Selenium RC的方法是

java -jar selenium-server.jar

// 在瀏覽器中執行一套Selenese指令碼

java -jar selenium-server.jar -htmlSuite

問題3:在我的機器埠4444不是免費的。我怎樣才能使用另一個埠?

//你可以在執行selenium伺服器時指定埠為 -

Java -jar selenium-server.jar -port 5555

問題4:什麼是Selenium Server,它與Selenium Hub有什麼不同?

Selenium Server是使用單個伺服器作為測試節點的一個獨立的應用程式。 Selenium hub代理一個或多個Selenium的節點例項。一個hub 和多個node被稱為Selenium grid。執行SeleniumServer與在同一主機上用一個hub和單個節點建立de Selenium grid類似。

問題5:你如何從Selenium連線到資料庫?

Selenium是一個Web UI自動化工具。它不提供任何API來建立資料庫連線。這取決於你使用Selenium進行自動化的程式語言。在下面的例子中,我們假設正在使用Java。

一個Connection物件表示與資料庫的連線。當我們使用連線方法連線到一個數據庫時,我們建立了一個連線物件,它代表了與資料庫的連線。單個數據庫可能有一個連線或多個連線,還可能有多個連線到不同的資料庫上。

我們可以使用Connection物件來做以下事情:

  • 建立用於執行SQL語句的Statement,PreparedStatement和CallableStatement物件。

  • 可以幫助我們提交或回滾一個JDBC事務。

  • 如果你想知道連線到的資料庫或資料來源資訊,Connection物件通過使用DatabaseMetaData就可以收集有關資料庫或資料來源的資訊。

  • 可以幫助我們關閉資料來源。Connection.isClosed() 方法只有在呼叫了Connection.close()時才返回true 。此方法用於關閉所有連線。

首先我們需要通過使用DriverManager.getConnection()方法,建立與資料庫的連線。這個方法接受一個包含URL的字串。DriverManager類嘗試查詢可以連線到由字串URL表示的資料庫的驅動程式。每當呼叫getConnection()方法時,DriverManager類都會檢查可以連線到URL中指定的資料庫的所有已註冊的Driver類的列表。

句法:

String url = "jdbc: odbc: makeConnection";

Connection con = DriverManager.getConnection(url, "userID", "password");

問題6:Selenium RC中定位器方法有哪些?

  1. ID

  2. Name

  3. CSS (Cascade Stylesheet)

  4. XPATH (Relative XPath and Absolute XPath)

  5. Dom

問題7:你如何驗證多個頁面上存在的一個物件?

可以使用下面的Selenium命令來檢查:

assertTrue(selenium.isElementPresent(locator));

問題8:XPath中使用單斜槓和雙斜槓有什麼區別?

  • 如果XPath是從文件節點開始,它將允許建立“絕對”路徑表示式。

例如 “/ html / body / p”匹配所有的段落元素。

  • 如果XPath在文件中的任意位置開始進行選擇匹配,那麼它將允許建立“相對”路徑表示式。

例如 “// p”匹配所有的段落元素。

問題9:如何編寫Selenium IDE / RC的使用者擴充套件?

使用者擴充套件(UX)儲存在Selenium IDE或Selenium RC用來啟用擴充套件的單獨檔案中。它包含用JavaScript編寫的函式定義。

因為Selenium的核心是用JavaScript開發的,所以要符合原語言的標準規則來建立擴充套件。要建立一個擴充套件,我們必須用下面的設計格式來編寫函式。

// 樣例

Selenium.prototype.doFunctionName = function(){

}

函式名稱前面的“do”告訴Selenium這個函式可以被呼叫為一個步驟命令,而不是作為內部函式或私有函式被呼叫。

問題10:如何在頁面載入成功後驗證元素的存在?

它可以通過下面的程式碼行來實現。

只需一點時間(以秒為單位)來檢查元素,如下所示:

public void waitForElementPresent(String element, int timeout) throws Exception {

for (int second = 0;; second++) {

if (second >= timeout)

fail("Timeout. Unable to find the Specified element" + element);

try {

if (selenium.isElementPresent(element))

break;

} catch (Exception e) {

}

Thread.sleep(1000);

}

}

問題11:你對Selenium Grid有什麼瞭解?它提供了什麼功能?

Selenium Grid是一款利用現有計算基礎架構大幅加速Web應用程式功能測試的工具。允許測試者輕鬆地在多臺機器上並行執行多個測試,並且可以在異構環境中執行。

基於優秀的Selenium Web測試工具,Selenium Grid允許測試者並行執行多個Selenium Remote Control例項。更好的是,它整合顯示所有Selenium遠端控制,所以不必擔心實際的基礎設施。Selenium Grid將執行Selenium測試套件所需的時間,縮短到Selenium例項的單個例項執行時間的一小點。

問題12:如何從你的Java Class啟動Selenium伺服器?

try {

seleniumServer = new SeleniumServer();

seleniumServer.start();

} catch (Exception e) {

e.printStackTrace();

}

問題13:Selenium中有哪些驗證點?

Selenium主要有三種驗證點 -

  • 檢查頁面標題

  • 檢查某些文字

  • 檢查某些元素(文字框,下拉選單,表等)

問題14:什麼是XPath?什麼時候應該在Selenium中使用XPath?

XPath是一種在HTML / XML文件中定位的方法,可用於識別網頁中的元素。如果沒有與頁面上的元素相關聯的名稱/ ID,或者名稱/ ID的一部分是常量,則必須使用XPath。

絕對路徑用 - / 單斜槓

相對路徑用 - // 雙斜槓

ID,類,名稱也可以用於XPath :

  • //input[@name=’q’]

  • //input[@id=’lst-ib’]

  • //input[@class=’ lst’]

如果id / name / class的一部分是常量 :

  • //input[contains(@id,’lst-ib’)

問題15:什麼是Selenium的CSS定位器策略?用例子來解釋。

CSS位置策略可以與Selenium一起使用來定位元素,它使用CSS定位方法,其中 -

絕對路徑用 - (空格符號)

相對路徑用 - >表示

ID,類,名稱也可以用於XPath:

  • css=input[name=’q’]

  • css=input[id=’lst-ib’] or input#lst-ib

  • css=input[class=’lst’] or input.lst

如果id / name / class只有一部分是常量:

  • css=input[id*=’lst-ib’)]

使用內部文字的元素位置策略:

  • css = a:contains(‘log out’)

問題16:當有很多定位器時,如ID、名稱、XPath、CSS定位器,我應該使用哪一個?

如果有唯一的名稱或識別符號可用,那麼應該使用它們來代替XPath和CSS定位器。如果沒有,那麼CSS定位器應該被優先考慮,因為在大多數現代瀏覽器中,它們的評估速度比XPath更快。

問題17:在硒中處理多個彈出視窗的機制是什麼?

可以使用命令getWindowHandles()來處理多個彈出視窗。

然後將所有視窗名稱儲存到Set變數中並將其轉換為陣列。

接下來,通過使用陣列索引,導航到特定的視窗。

driver.switchTo().window(ArrayIndex);

問題18:你如何處理使用Selenium的Ajax控制元件?

來看一個例子。假如一個文字框是一個Ajax控制元件,當我們輸入一些文字時,它會顯示自動建議的值。

處理這樣的控制元件,需要在文字框中輸入值之後,捕獲字串中的所有建議值;然後,分割字串,取值就好了。

Part2. WebDriver相關面試問題和答案

問題19:Selenium Webdriver優於Selenium RC的優點是什麼?

Selenium RC的架構相當複雜,WebDriver的架構比Selenium RC簡單些。

  • Selenium RC比較慢,因為它使用了另外一個名為Selenium Core的JavaScript程式。相反,WebDriver比Selenium RC更快,因為它直接與瀏覽器對話,並使用瀏覽器自己的引擎來進行控制。

  • 像其他JavaScript程式碼一樣,Selenium Core可以訪問禁用的元素。Webdriver以更現實的方式與頁面元素進行互動。

  • Selenium RC的API集已經有所改進,但是仍有經常讓人困惑的冗餘部分。WebDriver API更簡單,不包含任何冗餘或混淆的命令。

  • Selenium RC無法支援無頭HtmlUnit瀏覽器。它需要一個真正的、可見的瀏覽器來操作。Web Driver可以支援無頭HtmlUnit瀏覽器。

  • Selenium RC內建了測試結果生成器,並自動生成測試結果的HTML檔案。Web驅動程式沒有自動生成測試結果檔案的內建命令。

問題20:“GET”和“NAVIGATE”方法的主要區別是什麼?

Get方法能獲得一個頁面進行載入、或獲取頁面原始碼、或獲取文字,就這三。而Navigate將通過重新整理,回退,前進的方式導航。

例如 -如果我們想要前進,並做一些功能,並返回到主頁。

這可以通過呼叫< navigate()>方法來實現。

driver.get() 方法會等到整個頁面被載入後才可以,而driver.navigate()只是重定向到該網頁,並不會等待。

問題21:隱式等待與顯式等待有什麼不同?

隱式等待是設定的全域性等待,分為1、頁面載入超時等待 ;2、頁面元素載入超時;3、非同步指令碼超時。如果是頁面元素超時,設定等待時間,是對頁面中的所有元素設定載入時間。隱式等待是其實可以理解成在規定的時間範圍內,瀏覽器在不停的重新整理頁面,直到找到相關元素或者時間結束。

顯式等待只是用於特定搜尋的一個計時器。它的可擴充套件性更強,你可以設定它來等待任何條件。通常情況下,可以使用一些預先構建的條件來等待元素變得可點選,可見,不可見等,或者只是編寫適合需求的條件。

問題22:你將如何處理Selenium WebDriver中的警報/彈出視窗?

有兩種型別的警報通常被引用。

  • 基於Windows的警報彈出視窗

  • 基於Web的警報彈出視窗

基於Web的警報彈出視窗。

  1. WebDriver為使用者提供了一種使用Alert介面處理這些彈出視窗的非常有效的方法。

  2. void dismiss() - 一旦出現彈出視窗,dismiss()方法就會點選“Cancel”按鈕。

  3. void accept() - 只要彈出窗口出現,accept()方法就會點選“Ok”按鈕。

  4. String getText() - getText()方法返回警告框中顯示的文字。

  5. void sendKeys(String stringToSend) - sendKeys()方法將指定的字串模式輸入到警告框中。

基於Windows的警報彈出視窗。

處理基於windows的彈出視窗總是有點棘手,因為我們知道Selenium是一個自動化測試工具,它只支援Web應用程式測試,也就是說,它不支援基於Windows的應用程式,視窗警報就是其中之一。

  1. Robot class是基於Java的實用程式,它模擬鍵盤和滑鼠操作,並可以有效地用於處理基於windows的彈出與鍵盤事件的幫助。

  2. KeyPress和KkeyRelease方法可以分別模擬使用者按下和釋放鍵盤上某個鍵的操作。

問題23:如何使用Selenium WebDriver截圖?

問題24:如何在WebDriver/如何管理HTTPS中的安全連線錯誤中解決Firefox中的SSL證書問題?

問題25:如何解決IE中的SSL認證問題?

// 開啟瀏覽器後新增下面的命令

driver.navigate().to(“javascript:document.getElementById(‘overridelink’).click()”);

問題26:Selenium WebDriver中的可用定位器是什麼?

  1. ID,

  2. Name,名稱

  3. CSS,

  4. XPath,

  5. Class name,

  6. TagName,

  7. LinkText, 連結文字

  8. Partial Link Text.部分連結文字

問題27:如何處理WebDriver中的AJAX控制元件?

AJAX代表非同步JavaScript和XML。它不依賴於建立有效的XML所需的開啟和關閉標籤的額外開銷。大部分時間WebDriver自動處理Ajax控制元件和呼叫。如果不能處理的話,可以按照下面的方式來處理。

//Waiting for Ajax Control

WebElement AjaxElement = (new WebDriverWait(driver,

10)).until(ExpectedConditions.presenceOfElementLocated(By.("")));

問題28:如何在標題選單的子選單項上執行滑鼠移動操作?

應該首先移動選單標題,然後移至彈出選單項並單擊它。不要忘記在最後呼叫actions.perform() 。以下是一些示例Java程式碼:

相關推薦

自動化測試Selenium最新試題對應答案

問題1:Selenium是什麼,流行的版本有哪些?Selenium是基於Web的最流行的UI自動化測試工具。它提供了一組支援多種平臺的公開API(例如Linux,Windows,Mac OS X等)。此外,像Google Chrome,Mozilla Firefox,Inte

基於Selenium的Web自動化測試實戰&試題以及答案整理

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

Android常用試題常見問題

四大元件是什麼 四大元件的生命週期和簡單用法 Activity之間的通訊方式 Activity各種情況下的生命週期 橫豎屏切換的時候,Activity 各種情況下的生命週期 Activity與Fragment之間生命週期比較 Activity上有Dialog的時候按Home鍵時的生命週期 兩個A

2019年3月springboot最新試題(含詳細答案)

sources 其他 void jdk sets nic 功能 meta 屬性 springboot項目基礎面試題(一) 1.springboot與spring的區別. 引用自官方說法: java在集成spring等框架需要作出大量的配置,開發效率低,繁瑣.所以官方提出 s

精選20道Java多執行緒試題並有答案

ConcurrentHashMap的併發度就是segment的大小,預設為16,這意味著最多同時可以有16條執行緒操作ConcurrentHashMap,這也是ConcurrentHashMap對Hashtable的最大優勢,任何情況下,Hashtable能同時有兩條執行緒獲取Hashtable中的資料∂

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

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

自動化測試 selenium中WebDriver WebElement的區別

class 輸入 方法 圖片 形參 .com image 關閉 兩個 之前在做UI自動化測試中 經常會用到 WebDriver 和 WebElement兩個類 以前對這兩個類總感覺有點傻傻分不清 昨天看了下之前下的代碼 結合自己的理解 對著兩個類的區別和關系整

python+selenium自動化測試(資源下載網址方法步驟)

前言:本人是一個測試小白,從網上看到了許多大牛的安裝python和下載python,pip,selenium的過程,受益匪淺! 所以特地寫了一些總結。希望大家不要走彎路。尤其是一些驅動的下載,很多下載地址不管用,我在第5點,給出了一些從其他人那裡找來的網址,推薦了一些可以用

Robot Framework自動化測試---Selenium API

地址 create http 錯誤提示 所有 baidu htmlunit pan 發的 一、瀏覽器驅動 通過不同的瀏覽器執行腳本。 Open Browser Htpp://www.xxx.com chrome 瀏覽器對應

Java試題解答(三)

增加 自旋 println class 答案 logs 聯網 get link 1、這段代碼大多數情況下運行正常,但是某些情況下會出問題。什麽時候會出現什麽問題?如何修正? public class MyStack { private List<S

Java試題解答(四)

aio sys main sina 數據 由於 ssd shm 檢測 1、JVM什麽情況下會GC,GC策略有哪些 當應用程序分配新的對象,GC的代的預算大小已經達到閾值,比如GC的第0代已滿;代碼主動顯式調用System.GC.Collect();其他特殊情況,比如,系統

自動化測試-selenium初始化Driver參考

ref med ash 自動化 eve ima 測試 address get 涉及到的工具: org.openqa.selenium.Proxy org.openqa.selenium.chrome.ChromeDriver org.openqa.selenium.chro

springmvcmybatis試題(含答案

理解 頁面 發送請求 緩存 固定 sql tor 組件 poj 轉載:http://blog.csdn.net/xinghuo0007/article/details/53463897 Spring MVC Framework有這樣一些特點: 1。它是基於組件技術的.全部的

接口自動化測試系列之PHPUnit介紹環境搭建

測試幫日記 phpunit 小強測試品牌 自動化測試 接口測試 phpunit介紹PHPUnit是一個面向PHP程序員的測試框架,這是一個xUnit的體系結構的單元測試框架。phpunit環境搭建這裏介紹兩種搭建方法:第一種:直接使用xampp,裏面集成了phpunit地址:https:/

Spring試題答案

tar aos 好處 責任 strong enc 進行 需求 getter Spring 概述 1. 什麽是spring? Spring 是個java企業級應用的開源開發框架。Spring主要用來開發Java應用,但是有些擴展是針對構建J2EE平臺的web應用。Sprin

Android2017最新試題(3-5年經驗個人面試經歷)

asynctask 今天 nds tom 隨著 進程 處理 ror ron 2017最新Android面試題 大家好,在跟大家講述自己的面試經歷,以及遇到的面試題前,先說說幾句題外話。 接觸Android已經3年,在工作中遇到疑難問題總是在網上(csdn大牛博客,stack

Linux大牛分享的7道經典試題秒收 offer 的技巧

開發技能 多個 ins 主從架構 統計 mongo 交換 到你 移動客戶端 筆者其實沒有想到去面試,只是在智聯上更新了一下簡歷,就陸陸續續接到很多獵頭的郵件和電話,閑話少說,下面就分享給大家Linuxer的面試經歷: 首先,獵頭或者公司人資會把公司的介紹及崗位要求發到你郵箱

69道Spring試題答案

clas 完成 上傳 stp 集合 xml配置 很好 單元測試 簡潔 Spring 概述 1. 什麽是spring? Spring 是個Java企業級應用的開源開發框架。Spring主要用來開發Java應用,但是有些擴展是針對構建J2EE平臺的web應用。Spring 框架

精選11道Java技術試題並有答案(包含部分阿裏華為的試題

mit 高度 nth erro 多線程 edi GC expire 棧溢出 JVM的類加載機制是什麽?有哪些實現方式? 類加載機制: 類的加載指的是將類的.class文件中的二進制數據讀入到內存中,將其放在運行時數據區的方法去內,然後在堆區創建一個java.lang.Cl

跟浩哥學自動化測試Selenium -- Selenium簡介 (1)

jar包 鏈接 顯示設置 詳細 maven項目 搭建 text download https Selenium 簡介 Selenium 是一款開源的web自動化測試工具,用來模擬對瀏覽器的操作(主要是對頁面元素的操作),簡單來講,其實就是一個jar包。Seleniu