Chào các bạn đã đến với chủ đề tiếp theo của topic User Action. Hôm nay, mình sẽ tiếp tục giới thiệu về control Popup.
Về control này thì có nhiều cách hiển thị trên UI. Ví dụ như sau:
- Trang https://www.zingpoll.com/ . Sau khi open, bạn click vào ‘SIGN IN’ button, popup sẽ hiển thị như hình bên dưới.
- Trang https://bni.vn/. Sau khi open, bạn sẽ đợi khoảng 10s, cái popup sẽ tự động hiển thị như hình bên dưới.
- Trang https://blog.testproject.io/. Sau khi open, bạn sẽ đợi khoảng 10s, cái popup sẽ tự động hiển thị như hình bên dưới.
Về manual test, thì mình sẽ có những actions như sau:
- Navigate đến trang web bạn muốn test
- Wait vài giây để cái popup đó hiển thị trên trang web
- User bắt đầu thực hiện các thao tác. Ví dụ như input text, close popup…
- Nếu close popup, thì phải wait vài giây để popup đó closed đi mới thực hiện được các actions tiếp theo
- Hoặc kiểm tra xe popup có hiển thị hay không?
Về automation, thì flow cũng tương tự như vậy. Một số keyword mà Katalon support để thao tác như sau:
Nội dung
1. [WebUI] Wait For Element Visible
- Chờ vài giây để element hiển thị trên trang Web
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
'Open browser and navigate to website that contains the element to wait for'
WebUI.openBrowser("https://blog.testproject.io/")
"Wait for popup to be visible in 10s"
WebUI.waitForElementVisible(findTestObject('Popup/testproject/popup'), 10)
'Close browser'
WebUI.closeBrowser()
2. [WebUI] Wait For Element Not Visible
- Chờ vài giây để element không còn hiển thị trên trang Web sau khi thực hiện 1 action nào đó
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
"Open browser"
WebUI.openBrowser("https://shopee.vn/")
"Wait for popup display"
Boolean isDisplayed = WebUI.waitForElementVisible(findTestObject('Popup/shopee/popup'), 10)
"Check if popup displayed -> Close popup"
if(isDisplayed){
WebUI.click(findTestObject('Popup/shopee/btn_Close'))
}
"Wait for popup NOT visible"
WebUI.waitForElementNotVisible(findTestObject('Popup/shopee/popup'), 10)
'Close browser'
WebUI.closeBrowser()
3. [WebUI] Verify Element Visible
- Kiểm tra xem element có đang hiển thị trên trang Web hay không?
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
"Open browser"
WebUI.openBrowser("https://www.zingpoll.com/")
"Click on Sign In button"
WebUI.click(findTestObject('Popup/zingpoll/btn_SignIn'))
"Wait for Popup displayed"
WebUI.waitForElementVisible(findTestObject(
'Popup/zingpoll/popup_login'), 2)
"Verify popup displayed (existed in DOM and displayed on UI)"
WebUI.verifyElementVisible(findTestObject(
'Popup/zingpoll/popup_login'))
'Close browser'
WebUI.closeBrowser()
4. [WebUI] Verify Element Not Visible
- Kiểm tra xem element có đang KHÔNG hiển thị trên trang Web hay không?
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
"Open browser"
WebUI.openBrowser("https://bni.vn/")
"Verify popup displayed (existed in DOM and displayed on UI)"
WebUI.verifyElementVisible(Popup/bni/popup'))
"Close popup"
WebUI.click(findTestObject('Popup/bni/btn_Close'))
"Wait for popup closed. If not wait, this test case will be failed"
WebUI.waitForElementNotVisible(findTestObject('Popup/bni/popup'), 3)
"Verify popup closed"
WebUI.verifyElementNotVisible(findTestObject('Popup/bni/popup'))
"Close browser"
WebUI.closeBrowser()
5. Kết
Như vậy chúng ta đã tìm hiểu qua 1 số keyworks để xử lý cho popup control. Cảm ơn các bạn đã theo dõi bài viết của mình. Chúc các bạn thành công. Hẹn gặp lại các bạn ở những chủ đề tiếp theo. Bái bai.
Bài viết được mình tham khảo từ Katalon doc: https://docs.katalon.com/docs/katalon-studio-enterprise/keywords/web-ui-keywords/webui-accept-alert