Chào các bạn. Hôm nay chúng ta sẽ tiếp tục discuss về các actions của User khi truy cập vào 1 trang web bất kỳ. Trên thực tế, một trang web sử dụng rất nhiều control, ví dụ như textbox, combobox, button …
Mỗi control chúng ta sẽ dùng những Katalon keywords khác nhau để thao tác. Vì vậy, mình sẽ chia nhỏ topic này theo từng control riêng biệt, để các bạn có thể dễ dàng follow hơn, và cũng đỡ ngộp nữa =)).
Ở topic này, mình sẽ giới thiệu 2 controls, đó là Textbox và TextArea. Thật ra thì 2 loại controls này gần giống như nhau, chỉ khác là TextArea (https://demos.telerik.com/kendo-ui/textarea/index) mình input được nhiều dòng, có thể xuống hàng (ví dụ như mấy cái field description, hay comment).
Còn Textbox thì chúng ta gặp rất nhiều như field input username, password ở màn hình login 🙂
Bên dưới là 1 số Katalon keywords để handle 2 controls này:
1. [WebUI] Focus
- Focus chuột vào 1 control được chỉ định. Ví dụ như khi bạn input vào field usesrname, bạn sẽ move chuột vào nó rồi mới input giá trị
Ví dụ:
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
'Open browser and navigate to demo site.'
WebUI.openBrowser('https://katalon-demo-cura.herokuapp.com/profile.php#login')
'Focus on \'Username\' field'
WebUI.focus(findTestObject('Page_Login/txt_UserName'))
'Close browser'
WebUI.closeBrowser()
2. [WebUI] Set Text
- Input value vào đối tượng được chỉ định. Ví dụ như bạn input value vào textbox username. Keyword này sẽ xóa giá trị hiện tại trên textbox và sẽ input vào giá trị mới.
Ví dụ:
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
'Open browser and navigate to demo site.'
WebUI.openBrowser('https://katalon-demo-cura.herokuapp.com/profile.php#login')
'Input username'
WebUI.setText(findTestObject('Page_Login/txt_UserName'), Username)
'Input password'
WebUI.setText(findTestObject('Page_Login/txt_Password'), Password)
'Click on \'Login\' button'
WebUI.click(findTestObject('Page_Login/btn_Login'))
'Close browser'
WebUI.closeBrowser()
3. [WebUI] Send Keys
- Giả lập sự kiện gõ hot key vào 1 đối tượng được chỉ định. Ví dụ như Ctrl + A
Ví dụ:
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
'Open browser and navigate to demo site.'
WebUI.openBrowser('https://katalon-demo-cura.herokuapp.com/profile.php#login')
'Press Ctrl+A to select all text in txt_UserName'
WebUI.sendKeys(findTestObject('Page_Login/txt_UserName'), Keys.chord(Keys.CONTROL, 'a'))
'Close browser'
WebUI.closeBrowser()
4. [WebUI] Set Encrypted Text
- Giả sử bạn cần input String “abcxyz” vào field password. Nhưng bạn sợ để lộ thông tin cho người khác biết, thì bạn phải làm thế nào?
- Đầu tiên, bạn đem chuỗi password của bạn encrypted trước bằng cách mở Katalon, chọn Help > Encrypt Text, input cái chuỗi password của bạn vào đó. Sau đó, copy and paste chuỗi text đó vào test script của bạn.
Ví dụ:
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
'Open browser and navigate to demo site.'
WebUI.openBrowser('https://katalon-demo-cura.herokuapp.com/profile.php#login')
'Input username'
WebUI.setText(findTestObject('Page_Login/txt_UserName'), 'John Doe')
'Input password'
WebUI.setEncryptedText(findTestObject('Page_Login/txt_Password'), 'g3/DOGG74jC3Flrr3yH+3D/yKbOqqUNM')
'Click on "Login" button'
WebUI.click(findTestObject('Page_Login/btn_Login'))
'Close browser'
WebUI.closeBrowser()
5. Kết
Như vậy chúng ta đã tìm hiểu qua 1 số keyworks để xử lý cho control textbox, textarea và button. 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
WebUI.focus(findTestObject(‘Page_Login/txt_UserName’))
cho em hỏi lấy Page_Login ở đâu ạ, hay là chỉ đặt tên ở phần Spy web ạ
Page_Login này là mình tự tạo folder để chứa các Object của login page. Trong đó sẽ có 1 số object như: username, password … Trong 1 Website sẽ có rất nhiều page, nên mình cần tạo folder riêng cho từng page để sau này mình dễ quản lý.