一、selenium中如何判斷元素是否存在
expected_conditions模塊提供了多種校驗方式,我常用的一種是presence_of_element_located(判斷某個元素是否被加到了dom樹里,
並不代表該元素一定可見,如果定位到就返回WebElement)
二、selenium中hidden或者是display = none的元素是否可以定位到?
可以定位到,但是不能操作,為了顯示我們會的更多,我們可以說通過is_displayed()方法來判斷顯示或不顯示,如果想點擊的話,可以用js
去掉dispalay=none的屬性。
三、selenium中如何保證操作元素的成功率?也就是說如何保證我點擊的元素一定是可以點擊的?
通過wait模塊中的WebDriverWait類提供的until或until_not方法與expected_conditions結合使用,進行二次封裝。
四、如何提高selenium腳本的執行速度?
1.少用sleep,盡量不用implicitly_wait
2.多用顯式等待方法
五、用例在運行過程中經常會出現不穩定的情況,也就是說這次可以通過,下次就沒辦法通過了,如何去提升用例的穩定性?
通過wait模塊中的WebDriverWait類提供的until或until_not方法與expected_conditions結合使用,進行二次封裝。
六、自動化測試的時候是不是需要連接數據庫做數據校驗?
UI自動化不需要、接口測試會需要
七、id,name,class,xpath, css selector這些屬性,你最偏愛哪一種,為什么?
我喜歡用css selector css語法簡潔,定位快(xpath語法長,定位慢,還不穩定)
八、如何去定位頁面上動態加載的元素?
通過wait模塊中的WebDriverWait類提供的until循環的去判斷是否出現了要用的元素
九、如何去定位屬性動態變化的元素?
先去找該元素不變的屬性,要是都變,那就找不變的父元素,用層級定位
十、怎樣去選擇一個下拉框中的value=xx的option?
1、通過兩次click可以做到
2、通過執行js腳本做到(前提是你能寫出js代碼)
3、selenium提供了select模塊,我們可以通過select模塊中的方法定位,比如 index_of、value、text
4、還可以通過xpath定位,但是有時會出錯誤
十一、UI自動化最大的缺陷是什么?
需求變動大的時候,維護成本大
十二、webdriver可以用來做接口測試嗎?
不可以、webdriver是專門做webUI自動化的。