Python là một trong những ngôn ngữ lập trình phổ biến nhất cho tự động hóa web selenium vì nó cung cấp một cú pháp đơn giản hóa và cho phép bạn thực hiện nhiều hơn với nhiều mã hơn! Do đó, Python và Selenium tạo thành một sự kết hợp lý tưởng để thực hiện kiểm tra tự động hóa web! Show
Đối với người mới bắt đầu, selenium là một khung nguồn mở chủ yếu được sử dụng để tự động hóa các tương tác trên các webels trong AUT (ứng dụng được thử nghiệm). Cùng với Python, Selenium cũng hỗ trợ Java, C#, JavaScript, Ruby và PHP. Tuy nhiên, theo kinh nghiệm của tôi, sẽ công bằng khi đề cập rằng Python sẽ là ngôn ngữ ưa thích nhất của tôi đối với tự động hóa web Selenium. Giống như tôi, nhiều hơn và nhiều nhà phát triển đang chọn Python, được đánh giá là ngôn ngữ phổ biến thứ ba theo thứ ba theo khảo sát của nhà phát triển Overflow Overflow năm 2021. Do đó, một bảng gian lận Selenium Python có thể phục vụ mục đích cung cấp thông tin chi tiết về Selenium Python hữu ích API để hiện thực hóa tự động hóa các trang web (hoặc ứng dụng web). Nếu bạn mới sử dụng selenium và tự hỏi nó là gì thì chúng tôi khuyên bạn nên kiểm tra hướng dẫn của chúng tôi - selen là gì? Trong blog này, chúng tôi khám phá gói Python cung cấp các ràng buộc Python cho selenium webdriver. Để cài đặt gói Selenium WebDriver, chúng tôi sử dụng Chỉ số gói Python (PYPI). Chạy lệnh sau trên thiết bị đầu cuối để cài đặt selen cho Python: Nếu bạn muốn chạy các tập lệnh kiểm tra Python của mình qua lưới selen trực tuyến thì hãy tận dụng Lambdatest cho tự động hóa thử nghiệm của bạn.👇 Thư viện Python này bao bọc Selenium WebDriver và cung cấp các phương thức để tự động hóa một loạt các tác vụ như điền vào biểu mẫu, đăng nhập vào một trang web, nhấp vào các nút và hơn thế nữa. Ngoài ra, bạn có thể có một cái nhìn về hướng dẫn Selenium Python rằng sâu các khía cạnh không thể thiếu của Selenium Python từ quan điểm kiểm tra tự động hóa web. Các lệnh được đề cập trong bảng cheat Selenium Python này có thể được sử dụng như một nguồn tài nguyên tiện dụng cho bất kỳ ai chơi đùa với Selenium và Python để tự động hóa các ứng dụng web. Nếu bạn cần một bản tóm tắt nhanh chóng về Python với selenium, hãy xem hướng dẫn đi sâu vào kiến trúc Selenium WebDriver và nêu bật các khía cạnh không thể thiếu liên quan đến selenium webdriver với Python. Hãy để đá bắt đầu bảng cheat selenium của chúng tôi với Python! 1. Nhập thư viện selenTrước khi bạn có thể sử dụng bất kỳ lệnh Selenium Python nào, bạn cần nhập gói Selenium WebDriver.
2. Khởi tạo trình điều khiển với PythonSau khi tải xuống trình điều khiển trình duyệt tương ứng, bạn cần khởi động trình điều khiển Selenium WebDriver và trình duyệt (ví dụ: Chromedriver cho Chrome, Geckodriver cho Firefox, v.v.).
Trong trường hợp vị trí của trình điều khiển trình duyệt không được thêm vào biến đường dẫn (hoặc nếu nó không nằm trong đường dẫn hệ thống), bạn cần thêm các đối số sau:
Thí dụ
3. Đặt các tùy chọn trong selenium webdriverLớp Tùy chọn trong Selenium Python thường được sử dụng cùng với các khả năng mong muốn để tùy chỉnh Selenium WebDriver. Nó giúp thực hiện các hoạt động khác nhau như mở trình duyệt (Chrome, Firefox, Safari, IE, Edge, v.v.) ở chế độ tối đa hóa, cho phép và vô hiệu hóa các phần mở rộng trình duyệt, vô hiệu hóa chế độ GPU, vô hiệu hóa cửa sổ bật lên và hơn thế nữa. Do đó, điều quan trọng là phải thành thạo phần này của bảng gian lận Selenium Python vì nó sẽ giúp giải quyết các vấn đề cụ thể của tự động hóa web Python liên quan đến việc thay đổi các thuộc tính trình duyệt mà chúng tôi đã đề cập trước đó.
4. Tìm một yếu tốCác định vị trong selen được sử dụng chủ yếu để định vị các webels có trong DOM. Các tương tác (hoặc hành động) phù hợp được thực hiện thêm trên các webelement. Một số trình định vị web selen phổ biến là ID, tên, văn bản liên kết, văn bản liên kết một phần, bộ chọn CSS, XPath, TagName, v.v. Định vị các phần tử theo thuộc tính IDTrong phương thức này, phần tử trong DOM được tìm kiếm bằng thuộc tính ID. ID là duy nhất cho mọi yếu tố trên trang. Do đó, một ID có thể xác định duy nhất một yếu tố. Ví dụ: hiển thị bên dưới là việc sử dụng thuộc tính ID để định vị các webelements trên trang đăng nhập Lambdatest: Đây là cách bạn có thể sử dụng thuộc tính ID trong Selenium Python:
Định vị các phần tử theo lớp CSSCác phần tử trong HTML DOM cũng có thể được tìm kiếm bằng tên lớp, được lưu trữ trong thuộc tính lớp của thẻ HTML. Một lớp học có thể có nhiều trường hợp; Nó trả về phần tử đầu tiên với một lớp phù hợp. Dưới đây là cách tên lớp được sử dụng để định vị phần tử địa chỉ email trên trang Lambdatest:
Các phần tử trong HTML DOM cũng có thể được tìm kiếm bằng tên lớp, được lưu trữ trong thuộc tính lớp của thẻ HTML. Một lớp học có thể có nhiều trường hợp; Nó trả về phần tử đầu tiên với một lớp phù hợp.Dưới đây là cách tên lớp được sử dụng để định vị phần tử địa chỉ email trên trang Lambdatest: first_form_input = driver.find_element_by_class_name ("kiểm soát hình thức")
Các webelement như thẻ đầu vào có thuộc tính tên được liên kết với chúng. Selenium cũng cung cấp một phương thức để tìm kiếm các webelement bằng thuộc tính tên. Nếu có nhiều phần tử cùng tên, phần tử được khớp đầu tiên được trả về bằng phương thức.
Các phần tử trong HTML DOM cũng có thể được tìm kiếm bằng tên lớp, được lưu trữ trong thuộc tính lớp của thẻ HTML. Một lớp học có thể có nhiều trường hợp; Nó trả về phần tử đầu tiên với một lớp phù hợp.Dưới đây là cách tên lớp được sử dụng để định vị phần tử địa chỉ email trên trang Lambdatest: first_form_input = driver.find_element_by_class_name ("kiểm soát hình thức")
Định vị các phần tử theo lớp CSSCác phần tử trong HTML DOM cũng có thể được tìm kiếm bằng tên lớp, được lưu trữ trong thuộc tính lớp của thẻ HTML. Một lớp học có thể có nhiều trường hợp; Nó trả về phần tử đầu tiên với một lớp phù hợp. Dưới đây là cách tên lớp được sử dụng để định vị phần tử địa chỉ email trên trang Lambdatest:
Định vị các phần tử theo lớp CSSCác phần tử trong HTML DOM cũng có thể được tìm kiếm bằng tên lớp, được lưu trữ trong thuộc tính lớp của thẻ HTML. Một lớp học có thể có nhiều trường hợp; Nó trả về phần tử đầu tiên với một lớp phù hợp. Dưới đây là cách tên lớp được sử dụng để định vị phần tử địa chỉ email trên trang Lambdatest: first_form_input = driver.find_element_by_class_name ("kiểm soát hình thức")
Các phần tử trong HTML DOM cũng có thể được tìm kiếm bằng tên lớp, được lưu trữ trong thuộc tính lớp của thẻ HTML. Một lớp học có thể có nhiều trường hợp; Nó trả về phần tử đầu tiên với một lớp phù hợp.
Các phần tử trong HTML DOM cũng có thể được tìm kiếm bằng tên lớp, được lưu trữ trong thuộc tính lớp của thẻ HTML. Một lớp học có thể có nhiều trường hợp; Nó trả về phần tử đầu tiên với một lớp phù hợp.Dưới đây là cách tên lớp được sử dụng để định vị phần tử địa chỉ email trên trang Lambdatest: first_form_input = driver.find_element_by_class_name ("kiểm soát hình thức")
Dưới đây là các thuộc tính có sẵn cho theo lớp:
Được hiển thị bên dưới là một ví dụ về phương thức find_element sử dụng trình định vị XPath để xác định vị trí WebEuity mong muốn:
6. Mở URL (hoặc tài liệu)Trước khi thực hiện bất kỳ hoạt động nào trên các webels có trên trang, việc mở URL mục tiêu (hoặc URL thử nghiệm) là rất quan trọng. Dưới đây là một số cách để mở URL trong Selenium Python: driver.get(URL)Phương thức trình điều khiển () điều hướng đến trang được truyền dưới dạng tham số cho phương thức. Selenium WebDriver sẽ đợi cho đến khi trang đã được tải đầy đủ, đăng mà nó kích hoạt một sự kiện của On Onload trước khi trả lại quyền kiểm soát cho tập lệnh kiểm tra. Bạn có thể xem blog của chúng tôi trên Selenium Waits in Python để hiểu thêm về việc xử lý sự chờ đợi ở Selenium Python.
7. Làm mới một trangCó những kịch bản mà bạn muốn làm mới nội dung trên trang. Phương pháp làm mới của selenium webdriver được sử dụng để làm mới một trang web. Phương thức trình điều khiển.Refresh () làm mới trang web hiện tại. Nó không lấy bất kỳ đối số cũng như trả lại bất kỳ giá trị nào. 8. Viết văn bản bên trong một webelementPhương thức Send_Keys () trong Python được sử dụng để nhập văn bản bên trong một phần tử văn bản. Văn bản được nhập được truyền như một đối số cho phương thức. Phương pháp tương tự cũng có thể được sử dụng để mô phỏng các lần nhấn phím trên bất kỳ trường nào (ví dụ: các trường đầu vào của biểu mẫu). Dưới đây là một ví dụ sử dụng phương thức send_keys () trong đó địa chỉ email được chuyển đến phần tử văn bản trên trang đăng ký LambDatest:
9. Xóa văn bản của một webelementPhương thức phần tử.clear () trong selenium python được sử dụng để xóa văn bản khỏi các trường như các trường đầu vào của một biểu mẫu, v.v. Dưới đây là cách phương thức rõ ràng được sử dụng để xóa nội dung trong hộp đầu vào email trên trang chủ Lambdatest:
9. Xóa văn bản của một webelementPhương thức phần tử.clear () trong selenium python được sử dụng để xóa văn bản khỏi các trường như các trường đầu vào của một biểu mẫu, v.v. Dưới đây là cách phương thức rõ ràng được sử dụng để xóa nội dung trong hộp đầu vào email trên trang chủ Lambdatest:
Phương thức phần tử.clear () trong selenium python được sử dụng để xóa văn bản khỏi các trường như các trường đầu vào của một biểu mẫu, v.v.Dưới đây là cách phương thức rõ ràng được sử dụng để xóa nội dung trong hộp đầu vào email trên trang chủ Lambdatest: 10. Nhấp vào WebEuity Phương thức phần tử.click () trong selenium python được sử dụng để nhấp vào một phần tử như thẻ neo, thẻ nút, v.v.
Nút_element = driver.find_element_by_link_text ("Bắt đầu kiểm tra miễn phí")# Nhấp vào phần tử 11. Kéo và thả một webelement
Dưới đây là một số cách khác nhau trong đó phần tử mong muốn được chọn bằng phương thức select_by _*():
13. Điều hướng giữa các cửa sổNếu có nhiều cửa sổ, bạn có thể cần chuyển sang cửa sổ bên phải trước khi thực hiện các hành động trên các webels có trong DOM. trình điều khiển.switch_to_window (Window window_name,)Phương thức selenium webdriver cho phép bạn chuyển sang cửa sổ mong muốn. Tay cầm cửa sổ được truyền dưới dạng đối số cho phương thức switch_to_window ().
Tất cả các cuộc gọi tiếp theo của WebDriver hiện có thể áp dụng cho cửa sổ dưới tiêu điểm (hoặc cửa sổ mới được chuyển đổi). trình điều khiển.window_handlesWindow_handles thuộc tính của WebDriver trả về tay cầm của các cửa sổ. Bây giờ bạn có thể sử dụng phương thức switch_to_window () để điều hướng đến từng cửa sổ có sẵn trong danh sách window_handles.
trình điều khiển.current_window_handlePhương thức current_window_handle () trả về tay cầm của cửa sổ hiện tại (hoặc cửa sổ hiện đang được lấy nét)
14. Chuyển sang IfRamesSelenium WebDriver không thể truy cập hoặc xác định vị trí các phần tử web bên trong iframe trong bối cảnh của trang web chính. Do đó, bạn cần chuyển sang iframe trước khi truy cập các webels bên trong iframe. trình điều khiển.switch_to_frame (Khăn Frame_Name))Phương thức switch_to_frame () trong selenium python cho phép bạn chuyển bối cảnh của webdriver từ bối cảnh của trang chính. Chúng ta cũng có thể truy cập các khung con bằng cách tách đường dẫn và chỉ mục bằng một dấu chấm.
driver.switch_to_default_content()Phương pháp này cho phép bạn quay trở lại bối cảnh của trang chính.
15. Xử lý cửa sổ bật lên và cảnh báoCó ba loại cửa sổ bật lên chính và cảnh báo thường được sử dụng trong các ứng dụng web:
Bạn có tùy chọn để chuyển sang cảnh báo, bác bỏ cảnh báo hoặc chấp nhận cảnh báo. Bạn có thể xem hướng dẫn chi tiết của chúng tôi về các cảnh báo xử lý và cửa sổ bật lên trong selen. Mặc dù ngôn ngữ được sử dụng là C#, nhưng các nguyên tắc cơ bản của các cảnh báo và cửa sổ bật lên vẫn giống nhau! driver.switch_to.alertThuộc tính Switch_TO.Alert của WebDriver trả về đối tượng cảnh báo hiện đang mở. Bạn có thể sử dụng đối tượng để chấp nhận, loại bỏ, đọc nội dung của nó hoặc nhập vào dấu nhắc.
alert_obj.accept()Khi bạn có tay cầm của cửa sổ cảnh báo (ví dụ: alert_obj), phương thức Accept () được sử dụng để chấp nhận cửa sổ bật lên cảnh báo.
alert_obj.dismiss()Khi bạn đã chuyển sang cửa sổ cảnh báo (ví dụ: ALERT_OBJ), bạn có thể sử dụng phương thức Demiss () để hủy cửa sổ bật lên cảnh báo.
alert_obj.text()Khi bạn đã chuyển sang cửa sổ cảnh báo (ví dụ: ALERT_OBJ), bạn có thể sử dụng phương thức Demiss () để hủy cửa sổ bật lên cảnh báo.
Khi bạn đã chuyển sang cửa sổ cảnh báo (ví dụ: ALERT_OBJ), bạn có thể sử dụng phương thức Demiss () để hủy cửa sổ bật lên cảnh báo.Phương pháp này được sử dụng để truy xuất thông báo có trong cửa sổ bật lên cảnh báo.
16. Nhận nguồn trangPhương thức page_source () trong selenium webdriver được sử dụng để lấy nguồn tài liệu đích (hoặc trang thử nghiệm). driver.forward()17. Lịch sử trình duyệt điều hướng driver.back()Selenium WebDriver trong Python cung cấp một số chức năng để di chuyển về phía sau và chuyển tiếp trong lịch sử trình duyệt web Phương pháp này cho phép các tập lệnh điều hướng một bước về phía trước trong lịch sử.Phương pháp này cho phép các tập lệnh điều hướng lùi một bước trong lịch sử. driver.add_cookie()18. Xử lý cookie trong selen
driver.get_cookies()# Chuyển đến miền
driver.delete_cookie()Có một tùy chọn để xóa một cookie cụ thể hoặc tất cả các cookie liên quan đến phiên selen hiện tại.
Xem video này để hiểu cách bạn có thể xử lý cookie và thực hiện các hoạt động khác nhau như xóa, nhận các giá trị tham số và thêm chúng vào selenium webdriver bằng Java. 19. Cài đặt kích thước cửa sổPhương thức set_window_size () được sử dụng để đặt kích thước cửa sổ trình duyệt thành kích thước mong muốn (về chiều cao và chiều rộng).
20. Cấu hình thời gian chờ trong selenium webdriverKhi trình duyệt tải một trang, các webels bên trong trang có thể tải trong các khoảng thời gian khác nhau. Điều này có thể tạo ra các biến chứng khi tương tác với các yếu tố động có trên trang. Nếu một phần tử không có trong DOM của trang web, phương thức định vị sẽ tăng một ngoại lệ. Chờ trong selenium cho phép bạn thêm độ trễ (tính theo MS hoặc giây) giữa các hành động được thực hiện giữa việc tải trang và định vị webelement cần thiết. Chờ đợi và chờ đợi rõ ràng là hai cách chính bạn có thể thêm sự chậm trễ trong mã python selenium để xử lý các webele động trên trang. Chờ đợi trong Selenium PythonMột sự chờ đợi ngầm thông báo cho selenium webdriver để kiểm tra DOM trong một khoảng thời gian cụ thể khi cố gắng tìm webelement không có sẵn ngay lập tức để truy cập. Theo mặc định, chờ đợi ngầm được đặt là 0. Tuy nhiên, một khi chúng tôi xác định sự chờ đợi ngầm, nó được đặt cho thời gian sử dụng của đối tượng WebDriver. Kiểm tra hướng dẫn chi tiết của chúng tôi cho thấy việc sử dụng sự chờ đợi ngầm trong Selenium Python chi tiết hơn.
Chờ đợi rõ ràng trong Selenium PythonChờ đợi rõ ràng trong Selenium Python được sử dụng khi chúng tôi muốn chờ đợi một điều kiện cụ thể xảy ra trước khi tiến hành thêm trong mã. Có một số phương pháp thuận tiện được cung cấp bởi selenium webdriver cho phép bạn đợi cho đến khi một điều kiện cụ thể được thỏa mãn. Ví dụ, sự chờ đợi rõ ràng có thể đạt được bằng cách sử dụng lớp WebDriverWait kết hợp với các điều kiện dự kiến trong selen. Dưới đây là một số điều kiện dự kiến có thể được sử dụng cùng với sự chờ đợi rõ ràng trong Selenium Python:
Được hiển thị dưới đây là một ví dụ thể hiện việc sử dụng chờ đợi rõ ràng trong đó việc chờ đợi không chặn 10 giây được thực hiện cho đến khi đặt webelement cần thiết (sử dụng thuộc tính ID của nó):
Dưới đây là một số điều kiện dự kiến có thể được sử dụng cùng với sự chờ đợi rõ ràng trong Selenium Python: Invisility_of_element_locatedĐược hiển thị dưới đây là một ví dụ thể hiện việc sử dụng chờ đợi rõ ràng trong đó việc chờ đợi không chặn 10 giây được thực hiện cho đến khi đặt webelement cần thiết (sử dụng thuộc tính ID của nó): từ selenium.webdriver.common.by nhập bằng cách từ selenium.webdriver.support.ui Nhập WebDriverWait
từ selenium.webdriver.sport nhập khẩu dự kiến_conditions ASEC Dưới đây, một cái nhìn thoáng qua về chứng nhận Selenium Python 101 từ Lambdatest: Sự kết luậnBắt đầu với thử nghiệm Selenium Python và quá miễn phí !!! Python là một trong những ngôn ngữ phổ biến nhất và không có sự phủ nhận rằng bạn có thể chạy các hoạt động selen phức tạp với một vài dòng mã. Trong bảng cheat Selenium Python này, chúng tôi đã đề cập đến một số lệnh selenium python được sử dụng rộng rãi chủ yếu được sử dụng để kiểm tra khả năng tương thích của trình duyệt chéo. Bảng gian lận selen này có thể được sử dụng làm hướng dẫn (hoặc tham chiếu) để nhanh chóng đề cập đến các lệnh có thể được quan tâm cho mã kiểm tra của bạn. Tôi hy vọng rằng bạn thấy tấm cheat Selenium Python này hữu ích, hãy cho tôi biết nếu bạn bắt gặp bất kỳ lệnh Selenium Python nào nên là một phần của tờ. Thử nghiệm tự động hóa vui vẻ với Python! Vinayak SharmaNhà phát triển Python đầy đủ và một người đam mê công nghệ với các kỹ năng giao tiếp và giao tiếp mạnh mẽ. Có khả năng thích ứng cao với môi trường mới, thách thức và tăng mức độ trách nhiệm. |