Gửi nhiều khóa selen python

Chỉ có 2 hành động có thể được thực hiện bằng bàn phím. nhấn xuống một phím và nhả một phím đã nhấn. Ngoài việc hỗ trợ các ký tự ASCII, mỗi phím trên bàn phím đều có một biểu tượng có thể được nhấn hoặc nhả theo trình tự được chỉ định

Ngoài các phím được biểu thị bằng unicode thông thường, các giá trị unicode đã được gán cho các phím bàn phím khác để sử dụng với Selenium. Mỗi ngôn ngữ có cách riêng để tham chiếu các khóa này;

Sử dụng [Phím Java enum][https. //github. com/SeleniumHQ/selenium/blob/selenium-4. 2. 0/java/src/org/openqa/selenium/Keys. java#L28]

Sử dụng [Lớp Python Keys][https. //github. com/SeleniumHQ/selenium/blob/selenium-4. 2. 0/py/selenium/webdriver/common/keys. py#L23]

Sử dụng [. NET tĩnh][https. //github. com/SeleniumHQ/selenium/blob/selenium-4. 2. 0/dotnet/src/webdriver/Keys. cs#L28]

Sử dụng [Hằng số Ruby KEYS][https. //github. com/SeleniumHQ/selenium/blob/selenium-4. 2. 0/rb/lib/selenium/webdriver/common/keys. rb#L28]

Sử dụng [hằng số KHÓA JavaScript][https. //github. com/SeleniumHQ/selenium/blob/selenium-4. 2. 0/javascript/nút/selenium-webdo/lib/đầu vào. js#L44]

Sử dụng [Phím Java enum][https. //github. com/SeleniumHQ/selenium/blob/selenium-4. 2. 0/java/src/org/openqa/selenium/Keys. java#L28]

Đây là một phương pháp tiện lợi trong API hành động kết hợp các lệnh keyDown và keyUp trong một hành động. Việc thực thi lệnh này hơi khác so với việc sử dụng phương thức phần tử, nhưng về cơ bản, lệnh này được sử dụng khi cần nhập nhiều ký tự ở giữa các hành động khác

Đây là một ví dụ về việc sử dụng tất cả các phương pháp trên để thực hiện hành động sao chép/dán. Lưu ý rằng khóa được sử dụng cho thao tác này sẽ khác nhau tùy thuộc vào việc đó có phải là Mac OS hay không. Mã này sẽ kết thúc bằng văn bản. SeleniumSelenium!

Khi bạn xây dựng một ứng dụng web, điều quan trọng là đảm bảo rằng nó hoạt động như mong đợi. Đó là lý do tại sao bạn chạy nhiều thử nghiệm trước khi cung cấp cho khách hàng. Bạn không phải lúc nào cũng dự đoán được khách hàng sẽ sử dụng sản phẩm của mình như thế nào, vì vậy bạn phải đảm bảo rằng bạn đã thử nghiệm tất cả các trường hợp có thể xảy ra

Một trong những hành vi của người dùng mà bạn không thể kiểm soát là đầu vào họ cung cấp. Đó là lý do tại sao việc đảm bảo ứng dụng hoạt động tốt với nhiều loại đầu vào là rất quan trọng. Để giúp bạn tự động hóa việc này, bạn có thể sử dụng phương thức sendKeys của Selenium

Mục lục

  • SendKeys là gì?
  • Selenium SendKeys được sử dụng ở đâu?
    • Xác thực đầu vào
    • Đánh giá kết quả tìm kiếm
    • Chức năng đặc biệt
  • Sử dụng Selenium SendKeys
    • SendKeys trong Python
    • SendKeys trong Java
    • Xóa văn bản bằng Selenium SendKeys
  • Khắc phục sự cố với Selenium SendKeys
  • Làm cách nào chúng ta có thể nhập Selenium mà không cần sử dụng sendKey?
  • Testim để gửi đầu vào bàn phím
  • Sự kết luận

Đầu tiên tôi sẽ cho bạn biết phương thức sendKeys là gì, sau đó cho bạn thấy một số ứng dụng của nó. Và cuối cùng, tôi sẽ cung cấp cho bạn một số mã Python và Java mẫu sử dụng phương thức sendKeys

SendKeys là gì?

SendKeys là phương pháp được sử dụng để gửi đầu vào bàn phím như ký tự, số và ký hiệu tới hộp văn bản bên trong ứng dụng. Khi bạn đang thử nghiệm một ứng dụng, tất cả các hành động được xử lý bởi phần tử WebDriver, mà sendKeys là một phần của

Hình ảnh bên dưới thể hiện chuỗi hành động để gửi đầu vào bàn phím khi sử dụng phương thức sendKeys

Đầu tiên, bạn mở ứng dụng web muốn kiểm tra và đợi nó tải

Tiếp theo, tìm và chọn phần tử bạn muốn gửi đầu vào bàn phím tới. Bạn có thể sử dụng nhiều phương thức khác nhau để tìm phần tử, chẳng hạn như XPath, ID phần tử, tên phần tử, v.v. Tất cả chúng đều có ưu và nhược điểm bao gồm việc không tìm thấy phần tử và không kiểm tra. Đây là một trong những điểm khác biệt trong cách thức hoạt động của Testim [đọc thêm bên dưới]

Khi bạn đã chọn phần tử, bạn có thể gửi đầu vào bàn phím tới phần tử đó bằng phương thức sendKeys

Sau khi gửi thông tin đầu vào, bạn có thể thực hiện các hành động bổ sung như gửi biểu mẫu hoặc tìm kiếm một từ khóa cụ thể

Selenium SendKeys được sử dụng ở đâu?

Theo nghĩa chung, sendKeys được sử dụng để kiểm tra ứng dụng cho các đầu vào khác nhau. Nhưng có hai bài kiểm tra đầu vào mà phương thức sendKeys được sử dụng chủ yếu

Xác thực đầu vào

Hầu hết các ứng dụng đều có dạng. Một trong những trường phổ biến nhất là địa chỉ email. Chúng ta đều biết rằng mọi địa chỉ email đều tuân theo một khuôn mẫu chung – tên người dùng@tên miền. Hầu hết các ứng dụng đều có hệ thống xác thực cú pháp email. Tương tự như vậy, bạn có thể thêm các kiểm tra xác thực bổ sung để xem, ví dụ: liệu mật khẩu mà người dùng nhập có tuân theo các quy tắc mật khẩu hay không

Khi bạn triển khai các xác thực như vậy trong các ứng dụng của mình, bạn cần đảm bảo rằng chúng hoạt động. Và bạn có thể sử dụng sendKeys để gửi các đầu vào khác nhau và tìm hiểu xem các xác thực của bạn có hoạt động bình thường hay không

Đánh giá kết quả tìm kiếm

Nếu ứng dụng của bạn có thanh tìm kiếm, điều rất quan trọng là phải đảm bảo rằng nó trả về các kết quả có liên quan. Bạn có thể sử dụng sendKeys để gửi các từ khóa tìm kiếm khác nhau, sau đó kiểm tra xem liệu ứng dụng của bạn có trả về kết quả như mong đợi hay không

Chức năng đặc biệt

Một số ứng dụng web đã bật các chức năng đặc biệt. Bạn có thể tìm thấy một ví dụ đơn giản trong Google Meet. Khi đang thực hiện cuộc gọi bằng Google Meet, bạn có thể nhấn CTRL+D để tắt tiếng và bật tiếng micrô của mình. Nếu ứng dụng của bạn có một số loại chức năng này, bạn có thể sử dụng sendKeys để kiểm tra

Bây giờ bạn đã biết khóa gửi Selenium là gì và bạn có thể sử dụng nó ở đâu, hãy xem mã mẫu

Mở rộng phạm vi thử nghiệm của bạn

Tác giả nhanh chóng và linh hoạt của các bài kiểm tra đầu cuối được hỗ trợ bởi AI — được xây dựng để mở rộng quy mô

Bắt đầu thử nghiệm miễn phí

Sử dụng Selenium SendKeys

Tôi sẽ chia sẻ hai bộ mã, một viết bằng Python và một viết bằng Java, sử dụng phương thức sendKeys

SendKeys trong Python

từ Selenium nhập webdriver

trình điều khiển = webdriver. firefox[]

người lái xe. nhận ["https. //www. thí dụ. com"]

elem = tài xế. find_element_by_id['email']

SendKeys trong Java

tổ chức nhập khẩu. openqa. selen. Qua;

tổ chức nhập khẩu. openqa. selen. Trình điều khiển web;

tổ chức nhập khẩu. openqa. selen. trình duyệt Chrome. Trình điều khiển Chrome;

tổ chức nhập khẩu. openqa. selen. *;

public static void main[String[] args]

Trình điều khiển WebDriver = ChromeDriver mới[];

người lái xe. nhận ["https. //www. thí dụ. com"];

Phần tử WebElement = trình điều khiển. findElement[By. id[“email”]];

yếu tố. sendKeys[“abc@xyz. com”];

Cả hai bộ mã trên đều sử dụng Selenium WebDriver để mở một URL giả. Sau đó, họ tìm kiếm một phần tử được coi là hộp văn bản lấy địa chỉ email làm đầu vào. Sau đó, nó sẽ gửi một địa chỉ email giả đến phần tử mà nó tìm thấy

Xóa văn bản bằng Selenium SendKeys

Bạn có thể sử dụng Sendkeys để gửi khóa cũng như xóa khóa. Tại sao bạn cần xóa các ký tự mà bạn vừa gửi đến hộp văn bản? . Khi bạn nhập nội dung nào đó vào công cụ tìm kiếm Google, bạn sẽ nhận được đề xuất ngay cả trước khi bạn tìm kiếm nội dung đó. Bạn có thể có một tính năng tương tự trong ứng dụng của mình. Tất nhiên, bạn có thể mở một URL nhiều lần và gõ mới. Nhưng điều đó không hiệu quả. Nó đặt nhiều tải hơn lên hệ thống và cũng mất nhiều thời gian hơn

Thay vào đó, bạn có thể sử dụng cùng một trình điều khiển đã mở một URL và tìm thấy phần tử hộp văn bản, đồng thời thay đổi thông tin nhập của bạn. Để làm điều này, bạn có thể sử dụng Selenium sendKeys. Đây là một mã ví dụ

từ Selenium nhập webdriver

từ selen. webdriver. phổ thông. phím nhập phím

url = 'https. //www. Google. com/'

trình điều khiển = webdriver. Chrome["Đ. \chromedriver. exe"]

tùy chọn = webdriver. ChromeOptions[]

original_size = trình điều khiển. get_window_size[]

elem = tài xế. find_element_by_name['q']

yếu tố. send_keys['testing'] #Nhập văn bản 'testing'

yếu tố. send_keys[3*Phím. BACKSPACE] #Xóa 3 ký tự từ cuối văn bản đã nhập

yếu tố. send_keys['im testing'] # Nối vào văn bản còn lại trong trường

yếu tố. clear[] #Xóa tất cả văn bản đã nhập

Mã này sẽ mở trang chủ của công cụ tìm kiếm Google và nhập văn bản “testing” vào thanh tìm kiếm. Sau đó, nó sẽ xóa 3 ký tự ở cuối để lại dòng chữ “kiểm tra” trong thanh tìm kiếm. Sau đó, chúng tôi gửi thêm các khóa “đang thử nghiệm” sẽ được thêm vào văn bản hiện có. Vì vậy, bây giờ chúng tôi có "kiểm tra thử nghiệm" trong thanh tìm kiếm. Và cuối cùng, mã xóa tất cả văn bản trong thanh tìm kiếm

Khắc phục sự cố với Selenium SendKeys

Trong các ứng dụng phức tạp, có thể gặp một chút khó khăn khi thực hiện mọi thứ ngay lần đầu tiên. Vì vậy, đây là một số vấn đề phổ biến nhất mà bạn gặp phải khi sử dụng khóa gửi Selenium và cách khắc phục chúng

  • Bạn cần đảm bảo rằng phần tử bạn đã chọn là phần tử nhận đầu vào bàn phím. Ví dụ: một hình ảnh trong ứng dụng sẽ không nhận đầu vào bàn phím. Vì vậy, nếu bạn gặp lỗi khi gửi khóa, trước tiên hãy kiểm tra và xác nhận rằng phần tử đó chấp nhận đầu vào bàn phím
  • Các ứng dụng hiện đại thường lồng các phần tử. Khi bạn đã tìm thấy phần tử mình muốn sử dụng, hãy đảm bảo sử dụng đúng tham chiếu đến đối tượng tôi. e. , ID, tên, lớp, v.v. Trong các phần tử lồng nhau, xác định tham chiếu đến phần tử mong muốn có đầu vào bàn phím và có thể truy cập được
  • Trong một số trường hợp, bạn có thể cần kích hoạt một sự kiện để gửi khóa đến phần tử. Ví dụ: có thể có một hộp văn bản chỉ nhận đầu vào sau khi nhấp chuột vào phần tử đó. Trong những trường hợp như vậy, việc chỉ tìm phần tử và gửi khóa sẽ không hiệu quả. Bạn sẽ phải tìm phần tử, nhấp vào phần tử, sau đó gửi khóa
  • Gửi khóa có thể không thành công khi phần tử không hoạt động hoặc không thể truy cập được. Ví dụ: một trường văn bản có thể chỉ hoạt động sau khi điền vào hộp văn bản trước đó hoặc một cửa sổ bật lên có thể đã chặn các hành động trên các phần tử nền. Trong những trường hợp như vậy, việc gửi khóa sẽ dẫn đến lỗi. Trước tiên, bạn cần làm cho phần tử hoạt động và có thể truy cập được để phần tử đó hoạt động, sau đó gửi khóa

Selenium sendKeys rất đơn giản và dễ sử dụng. Nhưng bạn cũng có thể tìm các lựa chọn thay thế cho Selenium sendKeys. Tôi sẽ đề cập đến 3 lựa chọn thay thế trong bài viết này

Làm cách nào chúng ta có thể nhập Selenium mà không cần sử dụng sendKey?

Sử dụng Trình thực thi Javascript

Cách tiếp cận này đúng như tên gọi, sử dụng các phương thức Javascript để tương tác với các thành phần của trang. Đây là mã mẫu gửi khóa bằng Javascript Executor

từ Selenium nhập webdriver

trình điều khiển = webdriver. Chrome['D. \\ chromedriver. exe']

người lái xe. nhận ["https. //www. thí dụ. com"]

trình điều khiển. exec_script["tài liệu. getElementsByName[' email ']. value='[email được bảo vệ]'"]

Chuỗi hành động Selenium

ActionChains là một tập hợp các lớp là một phần của Selenium. Các lớp này thường được sử dụng để thực hiện các tương tác bàn phím và chuột. ActionChains để gửi khóa tuân theo nguyên tắc giống như sendKeys ở lõi

từ Selenium nhập webdriver

từ selen. webdriver. phổ thông. action_chains nhập ActionChains

trình điều khiển = webdriver. Chrome['D. \\ chromedriver. exe']

người lái xe. nhận ["http. //www. thí dụ. com"]

elem = trình điều khiển. find_element_by_name[' email ']

Đây là một số lựa chọn thay thế dựa trên mã cho Selenium sendKeys. Và nếu bạn đang tìm kiếm các tùy chọn không sử dụng mã/kết hợp khác, thì Testim chính là thứ bạn cần

Testim để gửi đầu vào bàn phím

Tinh hoàn là gì?

Testim là một nền tảng thử nghiệm tự động "ghi và phát lại". Nó sẽ ghi lại tất cả các hành động của bạn và sau đó mô phỏng các hành động đó giống như Selenium. Ưu điểm của việc sử dụng Testim là bạn có thể tạo các bài kiểm tra ngay cả khi bạn không có bất kỳ kiến ​​thức lập trình nào. Ngoài ra, Testim sử dụng Bộ định vị thông minh dựa trên AI giúp xác định các yếu tố ngay cả khi mã thay đổi. Điều này giúp khắc phục vấn đề kiểm tra vảy mà Selenium được biết đến

Testim sử dụng các thuật toán AI phức tạp để thử nghiệm ứng dụng. Vì vậy, bạn chỉ có thể ghi lại các hành động của mình bằng Testim và Testim sẽ lặp lại quy trình vào lần tiếp theo. Bây giờ hãy để tôi chỉ cho bạn cách Testim có thể được sử dụng để gửi đầu vào bàn phím đến một ứng dụng web

Kiểm tra trong hành động

Bước đầu tiên là đăng nhập. Sau đó vào bảng điều khiển và nhấp vào nút TẠO BÀI KIỂM TRA. Nếu đây là lần đầu tiên bạn sử dụng bản ghi Testim trên trình duyệt, bạn sẽ được yêu cầu cài đặt tiện ích mở rộng. Cài đặt nó

Để ghi lại bài kiểm tra, nhấp vào nút Ghi. Công cụ sẽ mở ra một cửa sổ trình duyệt mới nơi bạn có thể thực hiện các tác vụ để kiểm tra ứng dụng. Tôi sẽ tạo một bài kiểm tra đơn giản, trong đó tôi sẽ tìm kiếm trên Google về “Testim. ” Sau đó, tôi sẽ truy cập trang web Testim và nhấp vào một yếu tố

Khi bạn hoàn thành các hành động thử nghiệm, bạn sẽ thấy danh sách các hành động bạn đã thực hiện như trong ảnh chụp màn hình bên dưới

Để chạy lại bài kiểm tra, chỉ cần nhấp vào nút Phát

Lưu ý rằng tôi đã gửi đầu vào bàn phím mà không cần viết dù chỉ một dòng mã. Quan trọng hơn, bạn cũng có thể sửa đổi bài kiểm tra và tham số hóa đầu vào để thử các loại dữ liệu khác nhau. Chẳng hạn, nếu bạn có danh sách các cụm từ tìm kiếm dữ liệu trong bảng tính Excel, bạn có thể chạy thử nghiệm nhiều lần, chọn đầu vào mới từ bảng tính Excel. Điều này giúp dễ dàng kiểm tra đầu vào biến cho ứng dụng của bạn để bắt chước những gì người dùng không thể đoán trước có thể làm

Sự kết luận

Bây giờ bạn đã biết cách gửi đầu vào bàn phím bằng Selenium sendKeys

Tất nhiên, bạn cần phải làm nhiều hơn là kiểm tra ứng dụng của mình cho các kiểu nhập văn bản khác nhau. Testim có thể làm cho toàn bộ quy trình từ đầu đến cuối trở nên dễ dàng hơn nhiều bằng cách mở rộng phạm vi kiểm tra của bạn, giảm số lần bảo trì mà bạn cần thực hiện và tăng tính linh hoạt trong kiểm tra của bạn

Đọc gì tiếp theo

Vì Selenium sendKeys chủ yếu được sử dụng để thử nghiệm, bạn cũng có thể muốn biết Cách đợi một trang tải trong Selenium trước khi bạn bắt đầu thử nghiệm và Cách chụp ảnh màn hình trong Selenium để bạn có thể sử dụng nó để sửa lỗi

Gửi khóa trong Selenium Python là gì?

SendKeys là gì? . Khi bạn đang thử nghiệm một ứng dụng, tất cả các hành động được xử lý bởi phần tử WebDriver, mà sendKeys là một phần của. a method used to send keyboard input such as characters, numbers, and symbols to text boxes inside an application. When you are testing an application, all the actions are taken care of by the WebDriver element, which sendKeys is a part of.

Phương pháp nào sẽ cho phép bạn nhấn nhiều phím cùng một lúc?

Chuyển đổi phím là khả năng bàn phím máy tính xử lý chính xác một số lần nhấn phím đồng thời. Bàn phím có n-key rollover [NKRO] có thể phát hiện chính xác đầu vào từ mỗi phím trên bàn phím cùng một lúc, bất kể có bao nhiêu phím khác cũng đang được nhấn.

Selenium có thể nhấn các phím trên bàn phím không?

Khi người dùng nhấn một hoặc nhiều phím, các sự kiện bàn phím sẽ tạo ra . Selenium cung cấp nhiều cách khác nhau để tự động hóa các Sự kiện bàn phím này, một vài trong số đó là. Tự động hóa các sự kiện bàn phím bằng phương thức sendKeys[] của lớp WebElement. Tự động hóa các sự kiện bàn phím bằng lớp Robot.

Chủ Đề