Tôi đã thêm hỗ trợ các phím đặc biệt vào lệnh sendKeys trong Selenium IDE v2. 3. 0. Không chỉ phát lại bình thường mà còn phát lại Webdriver. Cùng với điều này, tôi đã thêm hỗ trợ các phím đặc biệt cho tất cả các trình định dạng được hỗ trợ chính thức cho Java, Ruby, Python và C#. Và cả trình định dạng Perl Webdriver. Có, trình định dạng Perl Webdriver, nó tồn tại và sẽ sớm được phát hành. Nó không chính thức, nhưng tôi sẽ duy trì nó ở cấp độ của các trình định dạng được hỗ trợ chính thức khác. chờ nó
Để biến tất cả những điều này thành có thể, tôi đã phải đưa ra một chiến lược hoạt động hiệu quả với tất cả các cách sử dụng sendKey khác nhau này. Sử dụng các phím đặc biệt trong sendKeys thực sự đơn giản. Bạn sử dụng nó như một biến được lưu trữ thông thường với tiền tố “KEY_” đặc biệt. Ví dụ: để nhấn phím ENTER, bạn sẽ viết KEY_ENTER dưới dạng một biến, i. e. ${KEY_ENTER}
sendKeys | id=search | ${KEY_ENTER}
Kết hợp văn bản và phím Enter
Kết hợp văn bản bình thường với các phím đặc biệt thực sự đơn giản. Đơn giản, nhúng khóa đặc biệt vào văn bản, tôi. e. phô mai${KEY_ENTER}
sendKeys | id=search | cheese${KEY_ENTER}
Lệnh trên sẽ gõ pho mát vào hộp tìm kiếm và nhấn phím enter, khiến nó tìm kiếm
Sử dụng phím Shift
Phím shift và phím mũi tên thường hữu ích để chọn văn bản. Để nhấn phím shift và phím trái, bạn có thể sử dụng chúng như thế này
sendKeys | id=search | gx${KEY_SHIFT}${KEY_LEFT}${KEY_SHIFT}o
Trong lệnh trên, shift đầu tiên sẽ nhấn nó, sau đó nhấn phím trái rồi nhả shift, kết quả là văn bản đi trong trường tìm kiếm
Sử dụng phím điều khiển
Cách sử dụng phím điều khiển cũng giống như phím shift. Để nhấn phím điều khiển và phím trái, mà trên một số trình duyệt và nền tảng có nghĩa là chuyển đến phần đầu của văn bản trong trường, bạn có thể thực hiện việc này
sendKeys | id=search | o${KEY_CTRL}${KEY_LEFT}${KEY_CTRL}g
Trong lệnh trên, điều khiển đầu tiên sẽ nhấn nó, sau đó nhấn phím trái rồi nhả điều khiển, kết quả lại là văn bản đi vào trường tìm kiếm
Sử dụng phím Meta/Command
Trên bàn phím máy Mac, bạn có phím lệnh hoặc phím meta, phím này lại được sử dụng giống như phím shift hoặc phím điều khiển
Tại sao phím Tab không hoạt động?
Lệnh sendKeys gửi các khóa đến một trường trên trang web. Một số trình duyệt chặn một số khóa nhất định ngay cả trước khi chúng đến trường. Chúng bao gồm các phím tăng tốc menu và đôi khi là các phím như tab. Ở chế độ phát lại thông thường, Selenium IDE sử dụng các nguyên tử Selenium cho sendKeys. Mặc dù điều này mang lại nhiều chức năng hơn, nhưng nó không giống như cách nhấn các phím nguyên bản. Tuy nhiên, phát lại trình điều khiển web hỗ trợ điều này trong một số trường hợp nhất định. Vì vậy, bạn có thể thấy một thử nghiệm cố gắng gửi phím tab hoạt động khi phát lại Webdriver và không hoạt động khi phát lại thông thường
Tại sao sự kết hợp của tôi không hoạt động?
Trước tiên hãy đọc phần về 'Tại sao phím tab không hoạt động?'. Sẽ có những kết hợp không hoạt động. Nếu bạn cho tôi biết, tôi có thể điều tra và cố gắng đưa ra lời giải thích về nó hoặc ghi lại nó để nhiều người biết hơn về những gì hiệu quả và không hiệu quả
Phần 2 cung cấp danh sách đầy đủ tất cả các phím đặc biệt được hỗ trợ
Sử dụng các phím đặc biệt trong Selenium IDE – Phần 2
Đăng vào ngày 25 tháng 9 năm 2013 bởi Samit Badle
Trong phần 1, chúng ta đã thấy cách sử dụng các phím đặc biệt trong lệnh sendKeys trong Selenium IDE bắt đầu từ v2. 3. 0. Selenium IDE v2. 4. 0 rút gọn một số tên chính. Bài đăng này phục vụ như một tài liệu tham khảo nhanh và cung cấp danh sách đầy đủ tất cả các phím đặc biệt được hỗ trợ và một số ghi chú. Nếu có hai tùy chọn được đưa ra, bạn có thể sử dụng một trong hai tùy chọn đó
Sử dụng các phím đặc biệt
Các khóa đặc biệt được triển khai dưới dạng các biến được lưu trữ. Bạn sử dụng chúng tương tự như cách bạn sử dụng các phím đặc biệt. Tôi. e. đính kèm chúng trong ${}, e. g
${KEY_ENTER}
Nếu bạn muốn sử dụng nhiều hơn một khóa đặc biệt, mỗi khóa cần được đặt trong ${}, e. g
${KEY_LEFT}${KEY_BKSP}
Bạn có thể trộn và kết hợp văn bản thông thường và các phím đặc biệt theo ý muốn. e. g
Everybody loves chese${KEY_LEFT}${KEY_LEFT}e
Hãy nhớ rằng bạn không nên tạo các biến được lưu trữ có cùng tên với các khóa đặc biệt trong các thử nghiệm của mình. Bạn không nên tạo bất kỳ biến được lưu trữ nào bắt đầu bằng tiền tố KEY_
Sử dụng các phím bổ trợ
Lần xuất hiện đầu tiên của phím bổ trợ nhấn chúng và lần thứ hai giải phóng nó. Nếu một phím bổ trợ được sử dụng nhiều hơn hai lần, thì sẽ dễ dàng nghĩ rằng các lần lẻ là các lần nhấn và các lần chẵn là các lần nhả. Tất cả các phím bổ trợ được giải phóng ở cuối lệnh sendKeys và sẽ không ảnh hưởng đến lệnh sendKeys tiếp theo
Các phím bổ trợ được hỗ trợ
- KEY_ALT
- KEY_CONTROL / KEY_CTRL
- KEY_META / KEY_COMMAND
- KEY_SHIFT
Các phím chung được hỗ trợ
- KEY_BKSP / KEY_BACKSPACE
- KEY_DEL / KEY_DELETE
- KEY_ENTER
- KEY_EQUALS
- KEY_ESC / KEY_ESCAPE
- KEY_INS / KEY_INSERT
- KEY_PAUSE
- KEY_SEMICOLON
- KEY_SPACE
- KEY_TAB
Phím điều hướng được hỗ trợ
- KEY_LEFT
- KEY_UP
- KEY_RIGHT
- KEY_DOWN
- KEY_PGUP / KEY_PAGE_UP
- KEY_PGDN / KEY_PAGE_DOWN
- KEY_END
- KHÓA_HOME
Các phím số được hỗ trợ
- KEY_NUMPAD0 / KEY_N0
- KEY_NUMPAD1 / KEY_N1
- KEY_NUMPAD2 / KEY_N2
- KEY_NUMPAD3 / KEY_N3
- KEY_NUMPAD4 / KEY_N4
- KEY_NUMPAD5 / KEY_N5
- KEY_NUMPAD6 / KEY_N6
- KEY_NUMPAD7 / KEY_N7
- KEY_NUMPAD8 / KEY_N8
- KEY_NUMPAD9 / KEY_N9
- KEY_ADD / KEY_NUM_PLUS
- KEY_DECIMAL/ KEY_NUM_PERIOD
- KEY_DIVIDE/ KEY_NUM_DIVISION
- KEY_MULTIPLY/ KEY_NUM_MULTIPLY
- KEY_SEPARATOR/ KEY_SEP
- KEY_SUBTRACT/ KEY_NUM_MINUS
Các phím chức năng được hỗ trợ
- KHÓA_F1
- KHÓA_F2
- KHÓA_F3
- KHÓA_F4
- KHÓA_F5
- KHÓA_F6
- KHÓA_F7
- KHÓA_F8
- KHÓA_F9
- KHÓA_F10
- KHÓA_F11
- KHÓA_F12
Tương lai của các phím đặc biệt
Mặc dù tôi nghĩ rằng tính năng này đã hoàn thành, nhưng tôi có một số ý tưởng khác có thể làm cho tính năng này trở nên tốt hơn. Ý tưởng đầu tiên là giới thiệu các dạng ngắn hơn cho các khóa thường được sử dụng. Ý tưởng thứ hai là cung cấp một cách để chỉ định số lần nhấn một phím. Nếu không có bất kỳ phản hồi nào về việc có bao nhiêu người thực sự sử dụng ứng dụng này, sẽ rất khó để ưu tiên những cải tiến này. Vì vậy, hãy để lại nhận xét, gửi cho tôi một tweet, liên lạc