# Selenium IDE Snippets

Docs full (opens new window) mà đọc ko hiểu nên cần trải nghiệm thêm... dưới đây là note

# Input

store   |   admin                  |   username
type    |   id=email_or_username   |   ${username}

# Checkbox

check   |   css=[name=abc][value=1]  |

# Select thường

select   |   css=[name="dharma_school_id"]  |  value=1  
store                       |   00027                               |    search_keyword      /// khởi tạo biến (kiểu vậy)
wait for element visible    |   id=s2id_user_id                     |    500                 /// chờ select2 render UI
click                       |   css=#s2id_user_id .select2-choice   |                        /// click vào control 
send keys                   |   id=s2id_autogen1_search             |    ${search_keyword}   /// nhập biến ở trên vào input
pause                       |   1500                                |                        /// đợi AJAX chạy
click at                    |   css=#select2-results-1 > li:nth-child(1) > div  |            /// click Option đầu tiên 
verify element present      |   css=.result                                                  /// verify trên giao diện các kiểu 

# Tương tác với Browser

Đơn giản

execute script          |   return document.getElementsByClassName('user-menu').length  |  hasAuth    /// nhớ return + tên biến `hasAuth`
if                      |   ${hasAuth} == 0                                             |             /// kiểm tra biến trong flow
    /// ... action here 
end

Phức tạp hơn chút

execute script          |   var index = ${member_id_index}; var member_id = ${member_id};var row_index = -1; $('.table-responsive tbody tr').each( (i, e) => { var text = $(e).find('td:nth-child(' + index +')').text(); if (text == member_id ) { row_index = i; }   } ); return row_index + 1; | row_index

# Vòng lặp

store json           |   ["member_id", "location", "cgdp_student_id"]                             |     arr_columns
for each             |   arr_columns                                                              |     column
    execute script   |   var v = ${column}; return $('#picked_column [value='+ v +']').length     |     picked_location
    // .....
end                  

Dùng để tạo dữ liệu gì đó

times  |    2    |      
    /// ... to task here  
end