Gửi các phím bàn phím trong selen python

Trong bài trước, chúng ta đã xem xét các chiến lược điều hướng khác nhau. Chúng ta sẽ xem cách kiểm soát các thao tác bàn phím trong bài đăng này

Selenium cho phép chúng ta giả lập các thao tác trên bàn phím như nhấn phím, xóa nội dung đã viết. Ngoài ra, chúng ta có thể sử dụng các phím bổ trợ như CTRL hoặc SHIFT để thực hiện một số lần nhấn phím ghép/kết hợp với sự trợ giúp của lớp

driver = webdriver.Firefox[]
5

chuỗi hành động

Chuỗi hành động cho phép các tương tác như di chuyển chuột, hành động của nút chuột, nhấn phím và kéo và thả. Khi bạn gọi các phương thức cho các hành động trên đối tượng

driver = webdriver.Firefox[]
6, các hành động được lưu trữ trong hàng đợi trong đối tượng
driver = webdriver.Firefox[]
6. Khi bạn gọi
driver = webdriver.Firefox[]
8, các sự kiện sẽ được kích hoạt theo thứ tự chúng được xếp hàng.
driver = webdriver.Firefox[]
6 có thể được sử dụng theo mô hình chuỗi hoặc xếp hàng từng cái một, sau đó được thực hiện

Đối với trường hợp sau

  1. Phiên bản
    driver = webdriver.Firefox[]
    
    6 được tạo bằng cách chuyển phiên bản WebDriver
  2. Một hành động[move_to_element] được thêm vào hàng đợi hành động cho thành phần menu
  3. Một hành động khác [nhấp chuột] được thêm vào hàng đợi hành động cho phần tử hidden_submenu
  4. Khi
    driver = webdriver.Firefox[]
    
    8 được gọi, hành động đầu tiên được thêm vào hàng đợi được thực thi để di chuyển đến menu chính
  5. Sau đó, hành động thứ hai được thêm vào được thực hiện để nhấp vào phần tử menu con

bàn phím

send_keys

Phương thức

driver.get["//www.python.org"]
2 nhập một chuỗi khóa vào phần tử. Các phím bổ trợ có sẵn từ lớp
driver.get["//www.python.org"]
3. Nó có thể lấy một chuỗi hoặc một khóa từ lớp
driver = webdriver.Firefox[]
50 làm tham số

Ví dụ sau điền vào trường nhập thư bằng “example@somedomain. giá trị com”

key_down

driver = webdriver.Firefox[]
51 được sử dụng để mô phỏng việc nhấn phím bổ trợ [Ctrl, Alt, Shift] mà không nhả phím

Ví dụ này viết đoạn mã sau vào vùng văn bản và chọn nó bằng tổ hợp

driver = webdriver.Firefox[]
52

def foo[]:
pass

key_up

driver = webdriver.Firefox[]
53 được sử dụng để mô phỏng hành động nhấn phím hoặc nhả phím của phím bổ trợ được nhấn bằng phương pháp
driver = webdriver.Firefox[]
51

Ví dụ sau tìm kiếm “SELENIUM webdriver” trên Google. Nó sử dụng phím SHIFT để viết selen bằng chữ hoa

selen. mô-đun webdriver cung cấp tất cả các triển khai WebDriver. Các triển khai WebDriver được hỗ trợ hiện tại là Firefox, Chrome, IE và Remote. Lớp Keys cung cấp các phím trong bàn phím như RETURN, F1, ALT, v.v. Lớp By được sử dụng để định vị các thành phần trong tài liệu

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

Tiếp theo, phiên bản Firefox WebDriver được tạo

driver = webdriver.Firefox[]

Người lái xe. phương thức get sẽ điều hướng đến một trang được cung cấp bởi URL. WebDriver sẽ đợi cho đến khi trang được tải đầy đủ [nghĩa là sự kiện “onload” đã kích hoạt] trước khi trả lại quyền kiểm soát cho bài kiểm tra hoặc tập lệnh của bạn. Xin lưu ý rằng nếu trang của bạn sử dụng nhiều AJAX khi tải thì WebDriver có thể không biết khi nào nó đã tải xong

driver.get["//www.python.org"]

Dòng tiếp theo là một xác nhận để xác nhận rằng tiêu đề có từ “Python” trong đó

assert "Python" in driver.title

WebDriver cung cấp một số cách để tìm phần tử bằng phương thức find_element. Ví dụ: phần tử văn bản đầu vào có thể được định vị theo thuộc tính tên của nó bằng cách sử dụng phương thức find_element và sử dụng By. NAME làm tham số đầu tiên. Giải thích chi tiết về cách tìm phần tử có sẵn trong chương Định vị phần tử .

elem = driver.find_element[By.NAME, "q"]

Tiếp theo, chúng tôi đang gửi các phím, điều này tương tự như việc nhập các phím bằng bàn phím của bạn. Các khóa đặc biệt có thể được gửi bằng lớp Keys được nhập từ Selenium. webdriver. phổ thông. phím. Để an toàn, trước tiên chúng tôi sẽ xóa mọi văn bản được điền sẵn trong trường nhập [e. g. “Tìm kiếm”] để nó không ảnh hưởng đến kết quả tìm kiếm của chúng tôi

elem.clear[]
elem.send_keys["pycon"]
elem.send_keys[Keys.RETURN]

Sau khi gửi trang, bạn sẽ nhận được kết quả nếu có bất kỳ. Để đảm bảo rằng một số kết quả được tìm thấy, hãy khẳng định

assert "No results found." not in driver.page_source

Cuối cùng, cửa sổ trình duyệt được đóng lại. Bạn cũng có thể gọi phương thức thoát thay vì đóng. Phương thức thoát sẽ thoát khỏi trình duyệt trong khi phương thức đóng sẽ đóng một tab, nhưng nếu chỉ một tab được mở, theo mặc định, hầu hết các trình duyệt sẽ thoát hoàn toàn

________số 8

2. 3. Sử dụng Selenium để viết test¶

Selenium chủ yếu được sử dụng để viết các trường hợp thử nghiệm. Bản thân gói Selenium không cung cấp công cụ/khuôn khổ thử nghiệm. Bạn có thể viết các trường hợp thử nghiệm bằng mô-đun unittest của Python. Các tùy chọn khác cho một công cụ/khung là pytest và nose

Trong chương này, chúng tôi sử dụng unittest làm khung lựa chọn. Đây là ví dụ đã sửa đổi sử dụng mô-đun unittest. Đây là một thử nghiệm cho con trăn. chức năng tìm kiếm tổ chức

python python_org_search.py
0

Bạn có thể chạy trường hợp thử nghiệm trên từ trình bao như thế này

python python_org_search.py
1

Kết quả trên cho thấy bài kiểm tra đã hoàn thành xuất sắc

Ghi chú. Để chạy thử nghiệm trên trong IPython hoặc Jupyter, bạn nên chuyển một vài đối số cho hàm chính như bên dưới

python python_org_search.py
2

2. 4. Hướng dẫn ví dụ¶

Ban đầu, tất cả các mô-đun cơ bản cần thiết đều được nhập. Mô-đun unittest là mô-đun Python tích hợp dựa trên JUnit của Java. Mô-đun này cung cấp khuôn khổ để tổ chức các trường hợp thử nghiệm. selen. mô-đun webdriver cung cấp tất cả các triển khai WebDriver. Các triển khai WebDriver được hỗ trợ hiện tại là. Firefox, Chrome, IE và Điều khiển từ xa. Lớp Keys cung cấp các phím trong bàn phím như RETURN, F1, ALT, v.v. Lớp By được sử dụng để định vị các thành phần trong tài liệu

python python_org_search.py
3

Lớp test case được kế thừa từ unittest. Trường hợp thử nghiệm. Kế thừa từ lớp TestCase là cách để nói với mô-đun unittest rằng đây là một trường hợp thử nghiệm

python python_org_search.py
4

Phương thức setUp là một phần của quá trình khởi tạo. Phương thức này sẽ được gọi trước mỗi hàm kiểm tra mà bạn sẽ viết trong lớp trường hợp kiểm tra này. Ở đây bạn đang tạo một phiên bản Firefox WebDriver

python python_org_search.py
5

Đây là phương pháp trường hợp thử nghiệm. Phương pháp trường hợp thử nghiệm phải luôn bắt đầu bằng kiểm tra ký tự. Dòng đầu tiên bên trong phương thức này tạo tham chiếu cục bộ đến đối tượng trình điều khiển được tạo trong phương thức setUp

python python_org_search.py
6

Người lái xe. phương thức get sẽ điều hướng đến một trang được cung cấp bởi URL. WebDriver sẽ đợi cho đến khi trang được tải đầy đủ [nghĩa là sự kiện “onload” đã kích hoạt] trước khi trả lại quyền kiểm soát cho bài kiểm tra hoặc tập lệnh của bạn. Xin lưu ý rằng nếu trang của bạn sử dụng nhiều AJAX khi tải thì WebDriver có thể không biết khi nào nó đã tải xong

driver.get["//www.python.org"]

Dòng tiếp theo là một xác nhận để xác nhận rằng tiêu đề có từ “Python” trong đó

python python_org_search.py
8

WebDriver cung cấp một số cách để tìm phần tử bằng phương thức find_element. Ví dụ: phần tử văn bản đầu vào có thể được định vị theo thuộc tính tên của nó bằng phương thức find_element. Giải thích chi tiết về cách tìm phần tử có sẵn trong chương Định vị phần tử .

elem = driver.find_element[By.NAME, "q"]

Tiếp theo, chúng tôi đang gửi các phím, điều này tương tự như việc nhập các phím bằng bàn phím của bạn. Các khóa đặc biệt có thể được gửi bằng lớp Keys được nhập từ Selenium. webdriver. phổ thông. phím

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
0

Sau khi gửi trang, bạn sẽ nhận được kết quả theo tìm kiếm nếu có bất kỳ. Để đảm bảo rằng một số kết quả được tìm thấy, hãy khẳng định

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
1

Phương thức TearsDown sẽ được gọi sau mỗi phương thức kiểm tra. Đây là nơi để thực hiện tất cả các hành động dọn dẹp. Trong phương thức hiện tại, cửa sổ trình duyệt đã đóng. Bạn cũng có thể gọi phương thức thoát thay vì đóng. Phương thức thoát sẽ thoát toàn bộ trình duyệt, trong khi phương thức đóng sẽ đóng một tab, nhưng nếu đó là tab duy nhất được mở, theo mặc định, hầu hết các trình duyệt sẽ thoát hoàn toàn

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
2

Dòng cuối cùng là một số mã tấm nồi hơi để chạy bộ thử nghiệm

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
3

2. 5. Sử dụng Selenium với WebDriver từ xa¶

Để sử dụng WebDriver từ xa, bạn phải chạy máy chủ Selenium. Để chạy máy chủ, sử dụng lệnh này

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
4

Trong khi chạy máy chủ Selenium, bạn có thể thấy một thông báo như thế này

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
5

Dòng trên nói rằng bạn có thể sử dụng URL này để kết nối với WebDriver từ xa. Dưới đây là một số ví dụ

Làm cách nào để gửi các phím bàn phím trong Python Selenium?

Chúng tôi có thể gửi đầu vào bàn phím tới hộp văn bản trên trang web trong Selenium webdriver bằng Python bằng phương thức send_keys . Văn bản được nhập được truyền dưới dạng tham số cho phương thức đó. Để thực hiện các thao tác trên bàn phím, chúng ta cũng có thể sử dụng phương thức send_keys rồi truyền vào lớp Keys.

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

Do đó, đây là nơi lớp Hành động của Selenium WebDriver xuất hiện, lớp này cung cấp các phương thức khác nhau để xử lý cụ thể hoạt động của các phím bàn phím meta này, cần nhấn trong khi thực hiện . .

Làm cách nào để gửi hai khóa trong Selenium Python?

Làm cách nào để gửi nhiều phím trên bàn phím trong Selenium? .
Sử dụng lớp hành động. Hành động hành động = hành động mới [trình điều khiển]; . keyDown[Phím
Sử dụng hợp âm SendKeys. người lái xe. findElement[By
Sử dụng lớp Robot. // Tạo lớp Robot Robot rb = new Robot[];

Làm cách nào để nhấn phím Enter bằng Selenium Python?

Cách sử dụng. .
Sử dụng phím. ĐI VÀO. từ selen. webdriver. phổ thông. phím nhập Trình điều khiển phím. find_element_by_id["element_id"]. send_keys[Khóa. ĐI VÀO]
Sử dụng phím. TRỞ LẠI. từ selen. webdriver. phổ thông. phím nhập Trình điều khiển phím. find_element_by_id["element_id"]. send_keys[Khóa. TRỞ LẠI]

Chủ Đề