昨天在某平臺發表了一篇這系列的文章,結果不但提示說有違禁詞(java也算?),然後文章稽核通過後,文章還找不到,不到去哪了,表示很鬱悶,去反應未果,確實有點尷尬了。
關於API的命名,僅出自於我個人理解,旨在看的同學理解會用,感覺名字不好可以重寫
哈!
在採取行動之前對元素執行一系列可操作性檢查,以確保這些行動按預期進行。它會自動等待所有相關檢查通過,然後才執行請求的操作。如果所需的檢查未在給定範圍內通過timeout
,則操作失敗並顯示TimeoutError
。
舉個栗子:
如元素點選操作,在操作元素之前需要預判:
以下是針對每個操作執行的可操作性檢查的完整列表:
Action | Attached | Visible | Stable | Receives Events | Enabled | Editable |
---|---|---|---|---|---|---|
check | Yes | Yes | Yes | Yes | Yes | - |
click | Yes | Yes | Yes | Yes | Yes | - |
dblclick | Yes | Yes | Yes | Yes | Yes | - |
setChecked | Yes | Yes | Yes | Yes | Yes | - |
tap | Yes | Yes | Yes | Yes | Yes | - |
uncheck | Yes | Yes | Yes | Yes | Yes | - |
hover | Yes | Yes | Yes | Yes | - | - |
scrollIntoViewIfNeeded | Yes | - | Yes | - | - | - |
screenshot | Yes | Yes | Yes | - | - | - |
fill | Yes | Yes | - | - | Yes | Yes |
selectText | Yes | Yes | - | - | - | - |
dispatchEvent | Yes | - | - | - | - | - |
focus | Yes | - | - | - | - | - |
getAttribute | Yes | - | - | - | - | - |
innerText | Yes | - | - | - | - | - |
innerHTML | Yes | - | - | - | - | - |
press | Yes | - | - | - | - | - |
setInputFiles | Yes | - | - | - | - | - |
selectOption | Yes | Yes | - | - | Yes | - |
textContent | Yes | - | - | - | - | - |
type | Yes | - | - | - | - | - |
注意:
Document
或 ShadowRoot
時,元素被視為已附加。visibility:hidden
計display:none
不被視為可見。<button>
、或具有屬性。<select><input><textarea>disabled
readonly
。判斷按鈕是否可用,如下圖:
範例程式碼如下:
@Test
public void testCheck(){
System.out.println("按鈕狀態是否可用:"+page.locator("[value='Submit']").isEnabled());
System.out.println("按鈕狀態是否可用:"+page.locator("[value='Submit']").isDisabled());
}
關於其他API
部分,請自行去嘗試,說句實話,真的硬磕官方檔案確實有點累,果然塑料英語是真的不行,希望不要誤人子弟就好,建議英文好的同學,還是去看官方檔案吧。
優秀不夠,你是否無可替代
軟體測試交流QQ群:721256703,期待你的加入!!
歡迎關注我的微信公眾號:軟體測試君