Chào các bạn đã đến với chủ đề tiếp theo của topic User Action. Hôm nay, chúng ta sẽ tiếp tục thảo luận về control DropdownList. Cũng giống như control checkbox, control này cũng được chia làm 2 loại:
- 1 là default Dropdown. Default dropdown là control có thẻ html là select và value item của nó là thẻ option. Ví dụ:
- 2 là custom Dropdown. Custom Dropdown là control có thẻ html là div. Ví dụ:
Katalon hỗ trợ rất nhiều keywords để xử lý cho default dropdown. Còn custom dropdown thì chỉ dùng được duy nhất 1 keyword đó là WebUI.click. Vì vậy mình sẽ chia bài này ra thành 2 topic nhỏ, để các bạn dễ hiểu hơn, không bị rối :D.
Trong nội dung bài này, mình chỉ focus vào default dropdown. Và bên dưới là những Katalon keywords hỗ trợ để handle nó.
Nội dung
- 1. [WebUI] Get Number Of Total Option
- 2. [WebUI] Verify Options Present
- 3. [WebUI] Verify Option Present By Label
- 4. [WebUI] Verify Option Present By Value
- 5. [WebUI] Verify Option Not Present By Label
- 6. [WebUI] Verify Option Not Present By Value
- 7. [WebUI] Select Option By Index
- 8. [WebUI] Verify Option Selected By Index
- 9. [WebUI] Verify Option Not Selected By Index
- 10. [WebUI] Select Option By Label
- 11. [WebUI] Verify Option Selected By Label
- 12. [WebUI] Verify Option Not Selected By Label
- 13. [WebUI] Select Option By Value
- 14. [WebUI] Verify Option Selected By Value
- 15. [WebUI] Verify Option Not Selected By Value
- 16. [WebUI] Get Number Of Selected Option
- 17. [WebUI] Deselect All Option
- 18. [WebUI] Select All Option
- 19. [WebUI] Deselect Option By Index
- 20. [WebUI] Deselect Option By Label
- 21. [WebUI] Deselect Option By Value
- 22. Kết
1. [WebUI] Get Number Of Total Option
- Count số lượng item hiện diện trong dropdown list
- Demo: https://demo.nopcommerce.com/register?returnUrl=%2F
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Get number of total option'
int totalOptions = WebUI.getNumberOfTotalOption(findTestObject('Default_DropDown/Single_Dropdown'))
println "Total items is: " + totalOptions
'Close Browser'
WebUI.closeBrowser()
Ví dụ như dropdown list Day như hình, sau khi run đoạn code trên, nó sẽ trả về giá trị là 32
2. [WebUI] Verify Options Present
- Kiểm tra danh sách items có hiện diện trong dropdown list hay không?
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Verify these text: ['Day', '1', '2', '3'] present in Date Of Birth dropdown'
WebUI.verifyOptionsPresent(findTestObject('Default_DropDown/Single_Dropdown'), ['Day', '1', '2', '3'])
'Close Browser'
WebUI.closeBrowser()
3. [WebUI] Verify Option Present By Label
- Kiểm tra label (displayed text) có hiện diện trong dropdown list hay không?
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Verify option present by label: <option value="0">Day</option>'
WebUI.verifyOptionPresentByLabel(findTestObject('Default_DropDown/Single_Dropdown'), 'Day', false, 30)
'Close Browser'
WebUI.closeBrowser()
4. [WebUI] Verify Option Present By Value
- Kiểm tra attribute value (của thẻ option) có hiện diện trong dropdown list hay không?
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Verify option present by value: <option value="1">1</option>'
WebUI.verifyOptionPresentByValue(findTestObject('Default_DropDown/Single_Dropdown'), '1', false, 30)
'Close Browser'
WebUI.closeBrowser()
5. [WebUI] Verify Option Not Present By Label
- Kiểm tra label (displayed text) KHÔNG hiện diện trong dropdown list
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Verify option not present by label: eg <option value="4">Four</option>'
WebUI.verifyOptionNotPresentByLabel(findTestObject('Default_DropDown/Single_Dropdown'), 'Four', false, 30)
'Close Browser'
WebUI.closeBrowser()
6. [WebUI] Verify Option Not Present By Value
- Kiểm tra attribute value (của thẻ option) KHÔNG hiện diện trong dropdown list
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Verify option not present by value: eg <option value="35">4</option>'
WebUI.verifyOptionNotPresentByValue(findTestObject('Default_DropDown/Single_Dropdown'), '35', false, 30)
'Close Browser'
WebUI.closeBrowser()
7. [WebUI] Select Option By Index
- Select item được chỉ định bởi index. Trong dropdown, index bắt đầu = 0
- Ví dụ như hình sau:
- index 0 = ‘Day’
- index 1 = ‘1’
- index 31 = 31
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Select value on dropdown by index 31: ngay 31'
WebUI.selectOptionByIndex(findTestObject('Default_DropDown/Single_Dropdown'), 31)
'Close Browser'
WebUI.closeBrowser()
8. [WebUI] Verify Option Selected By Index
- Kiểm tra item index có đang được select hay không?
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Select value on dropdown by index 31: ngay 31'
WebUI.selectOptionByIndex(findTestObject('Default_DropDown/Single_Dropdown'), 31)
'Verify index 31 (ngay 31) is selected'
WebUI.verifyOptionSelectedByIndex(findTestObject('Default_DropDown/Single_Dropdown'), 31, 30)
'Close Browser'
WebUI.closeBrowser()
9. [WebUI] Verify Option Not Selected By Index
- Kiểm tra item index có đang KHÔNG select hay không?
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Select value on dropdown by index 31: ngay 31'
WebUI.selectOptionByIndex(findTestObject('Default_DropDown/Single_Dropdown'), 31)
'Verify option not selected by index 2: eg <option value="2">2</option>'
WebUI.verifyOptionNotSelectedByIndex(findTestObject('Default_DropDown/Single_Dropdown'), 2, 30)
'Close Browser'
WebUI.closeBrowser()
10. [WebUI] Select Option By Label
- Select item được chỉ định bởi label (displayed text)
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Select value on dropdown by label: Day 10'
WebUI.selectOptionByLabel(findTestObject('Default_DropDown/Single_Dropdown'), '10', false)
'Close Browser'
WebUI.closeBrowser()
11. [WebUI] Verify Option Selected By Label
- Kiểm tra label (displayed text) có đang được select hay không?
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Select value on dropdown by label: Day 10'
WebUI.selectOptionByLabel(findTestObject('Default_DropDown/Single_Dropdown'), '10', false)
'Verify option Day 10 is selected'
WebUI.verifyOptionSelectedByLabel(findTestObject('Default_DropDown/Single_Dropdown'), '10', false, 30)
'Close Browser'
WebUI.closeBrowser()
12. [WebUI] Verify Option Not Selected By Label
- Kiểm tra label (displayed text) có đang KHÔNG select hay không?
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Select value on dropdown by label: Day 10'
WebUI.selectOptionByLabel(findTestObject('Default_DropDown/Single_Dropdown'), '10', false)
'Verify option not selected by label 20: eg <option value="20">20</option>'
WebUI.verifyOptionNotSelectedByLabel(findTestObject('Default_DropDown/Single_Dropdown'), '20', false, 30)
'Close Browser'
WebUI.closeBrowser()
13. [WebUI] Select Option By Value
- Select item được chỉ định bởi attribute value (trong thẻ option).
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Select value on dropdown by value 15'
WebUI.selectOptionByValue(findTestObject('Default_DropDown/Single_Dropdown'), '15', false)
'Close Browser'
WebUI.closeBrowser()
14. [WebUI] Verify Option Selected By Value
- Verify item được chỉ định bởi attribute value (trong thẻ option) có đang được select hay không?
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Select value on dropdown by value 15'
WebUI.selectOptionByValue(findTestObject('Default_DropDown/Single_Dropdown'), '15', false)
'Verify option Day 15 is selected'
WebUI.verifyOptionSelectedByValue(findTestObject('Default_DropDown/Single_Dropdown'), '15', false, 2)
'Close Browser'
WebUI.closeBrowser()
15. [WebUI] Verify Option Not Selected By Value
- Verify item được chỉ định bởi attribute value (trong thẻ option) có đang KHÔNG select hay không?
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://demo.nopcommerce.com/register?returnUrl=%2F')
'Select value on dropdown by value 15'
WebUI.selectOptionByValue(findTestObject('Default_DropDown/Single_Dropdown'), '15', false)
'Verify option not selected by value 2
WebUI.verifyOptionNotSelectedByValue(findTestObject('Default_DropDown/Single_Dropdown'), '2', false, 30)
'Close Browser'
WebUI.closeBrowser()
16. [WebUI] Get Number Of Selected Option
- Count số lượng item được select trong dropdown
- Keyword này được dùng cho dropdown cho phép select nhiều item
- Demo: https://getbootstrap.com/docs/5.0/forms/select/
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://getbootstrap.com/docs/5.0/forms/select/')
'Select option One'
WebUI.selectOptionByLabel(findTestObject('Default_DropDown/Multiple_Dropdown'), 'One', false)
'Get number of selected option'
int selectedOptions = WebUI.getNumberOfSelectedOption(findTestObject('Default_DropDown/Multiple_Dropdown'))
'Close Browser'
WebUI.closeBrowser()
17. [WebUI] Deselect All Option
- Deselect tất cả các items trong dropdown
- Keyword này được dùng cho dropdown cho phép select nhiều item
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://getbootstrap.com/docs/5.0/forms/select/')
'Select option One'
WebUI.selectOptionByLabel(findTestObject('Default_DropDown/Multiple_Dropdown'), 'One', false)
'Select option Two'
WebUI.selectOptionByLabel(findTestObject('Default_DropDown/Multiple_Dropdown'), 'Two', false)
'Select option Three'
WebUI.selectOptionByLabel(findTestObject('Default_DropDown/Multiple_Dropdown'), 'Three', false)
'Deselect all options'
WebUI.deselectAllOption(findTestObject('Default_DropDown/Multiple_Dropdown'))
'Close Browser'
WebUI.closeBrowser()
18. [WebUI] Select All Option
- Select tất cả các items hiện diện trong dropdown
- Keyword này được dùng cho dropdown cho phép select nhiều item
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://getbootstrap.com/docs/5.0/forms/select/')
'Select all options'
WebUI.selectAllOption(findTestObject('Default_DropDown/Multiple_Dropdown'))
'Close Browser'
WebUI.closeBrowser()
19. [WebUI] Deselect Option By Index
- Deselect item được chỉ định bởi index. Trong dropdown, index bắt đầu = 0.
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://getbootstrap.com/docs/5.0/forms/select/')
'Select option One'
WebUI.selectOptionByLabel(findTestObject('Default_DropDown/Multiple_Dropdown'), 'One', false)
'Deselect option by index 1: One'
WebUI.deselectOptionByIndex(findTestObject('Default_DropDown/Multiple_Dropdown'), 1)
'Close Browser'
WebUI.closeBrowser()
20. [WebUI] Deselect Option By Label
- Deselect item được chỉ định bởi label (displayed text)
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://getbootstrap.com/docs/5.0/forms/select/')
'Select option One'
WebUI.selectOptionByLabel(findTestObject('Default_DropDown/Multiple_Dropdown'), 'One', false)
'Deselect option by label: Two'
WebUI.deselectOptionByLabel(findTestObject('1.Basic/Topic_08_Handle_User_Action/05.DropdownList/Default_DropDown/Multiple_Dropdown'), "Two", false)
'Close Browser'
WebUI.closeBrowser()
21. [WebUI] Deselect Option By Value
- Deselect item được chỉ định bởi attribute value (trong thẻ option)
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://getbootstrap.com/docs/5.0/forms/select/')
'Select option Three'
WebUI.selectOptionByLabel(findTestObject('Default_DropDown/Multiple_Dropdown'), 'Three', false)
'Deselect option by value: 3 - Three'
WebUI.deselectOptionByValue(findTestObject('1.Basic/Topic_08_Handle_User_Action/05.DropdownList/Default_DropDown/Multiple_Dropdown'), '3', false)
'Close Browser'
WebUI.closeBrowser()
22. Kết
Như vậy chúng ta đã tìm hiểu qua 1 số keyworks để xử lý cho control Default Dropdown. Trong bài này, mình sử dụng khá nhiều keywords, các bạn hãy chịu khó practice để làm quen với nó nhé.
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