2. Commands
Các câu lệnh xác nhận trong SELENIUM IDE
- Các câu lệnh xác nhận trong Selenium IDE cho phép người dùng kiểm tra các giá trị và điều kiện trong quá trình kiểm thử tự động.
- Các câu lệnh này giúp xác minh rằng ứng dụng hoạt động như mong đợi và cung cấp phản hồi ngay lập tức nếu có sự cố xảy ra.
- Các câu lệnh xác nhận thường được sử dụng để kiểm tra các giá trị của biến, trạng thái của các phần tử trên trang web, hoặc các điều kiện khác trong quá trình kiểm thử.
Action commands
https://www.selenium.dev/selenium-ide/docs/en/api/commands#action Các câu lệnh hành động trong Selenium IDE cho phép người dùng tương tác với các phần tử trên trang web, như nhấp chuột, nhập văn bản, chọn tùy chọn từ danh sách, v.v. Những câu lệnh này giúp mô phỏng hành vi của người dùng trong
click
https://www.selenium.dev/selenium-ide/docs/en/api/commands#click Dùng để nhấp vào một phần tử cụ thể trên trang web. Phần tử có thể là một nút, liên kết, hoặc bất kỳ phần tử nào có thể tương tác.
{
"command": "click",
"target": "css=.example-class"
}
type
https://www.selenium.dev/selenium-ide/docs/en/api/commands#type Dùng để nhập văn bản vào một trường đầu vào. Phần tử có thể là một ô nhập văn bản, textarea, hoặc bất kỳ phần tử nào có thể nhận đầu vào văn bản.
{
"command": "type",
"target": "css=input[name='example']",
"value": "Hello World"
}
check
https://www.selenium.dev/selenium-ide/docs/en/api/commands#check Dùng để đánh dấu một checkbox hoặc radio button. Phần tử phải là một checkbox hoặc radio button.
{
"command": "check",
"target": "css=input[type='checkbox'][name='example']"
}
uncheck
https://www.selenium.dev/selenium-ide/docs/en/api/commands#uncheck Dùng để bỏ đánh dấu một checkbox hoặc radio button. Phần tử phải là một checkbox hoặc radio button.
{
"command": "uncheck",
"target": "css=input[type='checkbox'][name='example']"
}
select
https://www.selenium.dev/selenium-ide/docs/en/api/commands#select Dùng để chọn một tùy chọn từ một danh sách thả xuống. Phần tử có thể là một thẻ
<select>
với các tùy chọn con.
{
"command": "select",
"target": "css=select[name='example']",
"value": "Option 1" //
}
send keys
https://www.selenium.dev/selenium-ide/docs/en/api/commands#send-keys Dùng để gửi các phím cụ thể đến một phần tử. Điều này có thể hữu ích khi cần mô phỏng các hành động bàn phím như nhấn Enter, Tab, hoặc các phím chức năng khác.
{
"command": "send keys",
"target": "css=input[name='example']",
"value": "${KEY_ENTER}" // Gửi phím Enter
}
send keys (xóa nội dung)
https://www.selenium.dev/selenium-ide/docs/en/api/commands#send-keys Dùng để xóa nội dung của một trường đầu vào trước khi nhập văn bản mới. Điều này đảm bảo rằng trường đầu vào không chứa văn bản cũ trước khi nhập dữ liệu mới.
{
"command": "send keys",
"target": "css=input[name='example']",
"value": "${KEY_SHIFT}${KEY_HOME}${KEY_SHIFT}${KEY_DELETE}" // Xóa nội dung trường đầu vào
}
edit content
https://www.selenium.dev/selenium-ide/docs/en/api/commands#edit-content Dùng để chỉnh sửa nội dung của một phần tử có thể chỉnh sửa (như input, textarea, hoặc các phần tử có contenteditable). Lệnh này sẽ xóa nội dung hiện tại và thay thế bằng nội dung mới.
⚠️ Lưu ý: edit content
có thể không hoạt động với các thư viện UI như Ant Design (antd) vì chúng sử dụng React controlled components.
{
"command": "edit content",
"target": "css=input[name='example']",
"value": "New content to replace existing content"
}
Giải pháp cho Ant Design Input:
Để chỉnh sửa nội dung trong antd input, sử dụng cách sau:
// 1. Click vào input để focus
{
"command": "click",
"target": "css=.ant-input[placeholder='example']"
}
// 2. Chọn tất cả và xóa nội dung cũ
{
"command": "send keys",
"target": "css=.ant-input[placeholder='example']",
"value": "${KEY_CTRL}a"
}
// 3. Nhập nội dung mới
{
"command": "type",
"target": "css=.ant-input[placeholder='example']",
"value": "New content for antd input"
}
Các lệnh có thể chỉnh sửa input box:
type
: Nhập văn bản vào input box (thêm vào nội dung hiện có)edit content
: Thay thế hoàn toàn nội dung của input box (không hoạt động với antd)send keys
: Gửi các phím đặc biệt hoặc tổ hợp phím để chỉnh sửasend keys
(xóa nội dung): Xóa toàn bộ nội dung trước khi nhập mới
💡 Mẹo cho Ant Design: Sử dụng click
→ send keys
(Ctrl+A) → type
để chỉnh sửa antd input.
Assert commands
https://www.selenium.dev/selenium-ide/docs/en/api/commands#assert
Kiểm tra xem một biến có phải là giá trị mong đợi hay không. Giá trị của biến sẽ được chuyển đổi thành chuỗi để so sánh. Testcase sẽ dừng lại nếu assert thất bại.
assert text
https://www.selenium.dev/selenium-ide/docs/en/api/commands#assert-text
Dùng để xác nhận rằng một phần tử có chứa văn bản cụ thể. Nếu văn bản không khớp, testcase sẽ dừng lại.
{
"command": "assert text",
"target": "css=.example-class",
"value": "Expected Text"
}
assert value
https://www.selenium.dev/selenium-ide/docs/en/api/commands#assert-value Dùng để xác nhận rằng một phần tử có giá trị cụ thể. Nếu giá trị không khớp, testcase sẽ dừng lại.
{
"command": "assert value",
"target": "css=input[name='example']",
"value": "Expected Value"
}
assert element present
https://www.selenium.dev/selenium-ide/docs/en/api/commands#assert-element-present Dùng để xác nhận rằng một phần tử cụ thể có mặt trên trang. Nếu phần tử không có mặt, testcase sẽ dừng lại.
{
"command": "assert element present",
"target": "css=.example-class"
}
wait for element present
https://www.selenium.dev/selenium-ide/docs/en/api/commands#wait-for-element-present Dùng để chờ cho một phần tử cụ thể có mặt trên trang. Nếu phần tử không có mặt trong khoảng thời gian chờ, testcase sẽ dừng lại.
{
"command": "wait for element present",
"target": "css=.example-class",
"value": "5000" // Thời gian chờ trong mili giây
}
assert checked
https://www.selenium.dev/selenium-ide/docs/en/api/commands#assert-checked Dùng để xác nhận rằng một checkbox hoặc radio button đã được chọn. Nếu không được chọn, testcase sẽ dừng lại.
{
"command": "assert checked",
"target": "css=input[type='checkbox'][name='example']"
}
Verify
https://www.selenium.dev/selenium-ide/docs/en/api/commands#verify
Kiểm tra xem một biến có phải là giá trị mong đợi hay không. Giá trị của biến sẽ được chuyển đổi thành chuỗi để so sánh. Testcase sẽ không dừng lại nếu verify thất bại.