百家互聯網QA面試題-UI自動化

1、selenium中hidden或者是display = none的元素是否可以定位到?

2、selenium中,我的機器端口4444不是免費的。我怎樣才能使用另一個端口?

//你可以在運行selenium服務器時指定端口爲 - Java -jar selenium-server.jar -port 5555

3、什麼是Selenium Server,它與Selenium Hub有什麼不同?
4、Selenium中 你如何驗證多個頁面上存在的一個對象?

可以使用下面的Selenium命令來檢查: assertTrue(selenium.isElementPresent(locator));

5、XPath中使用單斜槓和雙斜槓有什麼區別?

如果XPath是從文檔節點開始,它將允許創建“絕對”路徑表達式。 例如 “/html / body / p”匹配所有的段落元素。 如果XPath在文檔中的任意位置開始進行選擇匹配,那麼它將允許創建“相對”路徑表達式。 例如“// p”匹配所有的段落元素。

6、如何編寫Selenium IDE / RC的用戶擴展?

用戶擴展(UX)存儲在Selenium IDE或Selenium RC用來激活擴展的單獨文件中。它包含用JavaScript編寫的函數定義。 因爲Selenium的核心是用JavaScript開發的,所以要符合原語言的標準規則來創建擴展。要創建一個擴展,我們必須用下面的設計格式來編寫函數。 // 樣例 Selenium.prototype.doFunctionName = function(){ } 函數名稱前面的“do”告訴Selenium這個函數可以被調用爲一個步驟命令,而不是作爲內部函數或私有函數被調用。

7、selenium中 如何在頁面加載成功後驗證元素的存在?請寫出實現代碼;

它可以通過下面的代碼行來實現。 只需一點時間(以秒爲單位)來檢查元素,如下所示: public void waitForElementPresent(String element,int timeout) throws Exception { for (int second = 0;; second++) { if (second >= timeout) fail(“Timeout. Unable to find the Specifiedelement” + element); try { if (selenium.isElementPresent(element)) break; } catch (Exception e) { } Thread.sleep(1000); } }

8、Selenium有幾種定位方式?你最偏愛哪一種,爲什麼?

Selenium有八種定位方式:
與name有關的有三種:name、class_name、tag_name
與link相關的有兩種:link_text、partitial_link_text
與id有關:id
全能選手:xpath、css_selector:如果存在id,我一定使用Id,因爲簡單方便,定位最快。其次是Xpath,因爲很多情況下html標籤的屬性不夠規範,無法唯一定位。Xpath是通過相對位置定位如果沒有,那麼CSS定位器應該被優先考慮,因爲在大多數現代瀏覽器中,它們的評估速度比XPath更快

10、webdriver client的原理是什麼?

在selenium啓動以後,driver充當了服務器的角色,跟client和瀏覽器通信,client根據webdriver協議發送請求給driver。driver解析請求,並在瀏覽器上執行相應的操作,並把執行結果返回給client.

11、什麼是斷言和驗證?

斷言(assert):測試將會在檢查失敗時停止,並不運行後續的檢查
優點:可以直截了當的看到檢查是否通過
缺點:檢查失敗後,後續檢查不會執行,無法收集那些檢查結果狀態
驗證(vertify):將不會終止測試
缺點:你必須做更多的工作來檢查測試結果:查看日誌——>耗時多,所以更偏向於斷言

12、如何去定位頁面上動態加載的元素?

首先觸發動態事件,然後再定位。如果是動態菜單,則需要層級定位。——JS實現(對動態事件封裝)

13、如何去定位屬性動態變化的元素?

先去找該元素不變的屬性,要是都變,那就找不變的父元素,用層級定位(以不變應萬變)
屬性動態變化也就是指該元素沒有固定的屬性值,可以通過:
JS實現,
通過相對位置來定位,比如xpath的軸,paren/following-sibling/percent-sibling

14、自動化遇到用例fail掉如何排查故障?

答:看出錯log,如果能按層次說清楚排查失敗:手工查應用是否真的有bug, 確認不是bug,是不是新版本引入了新的變更,調試腳本看看自己的腳本是不是因爲沒有等待元素出現後就操作了,是不是元素上面有其他元素出現這樣操作是不是操作了其他的元素上了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章