paint-brush
Tự động hóa web với Python và Seleniumtừ tác giả@terieyenike
29,420 lượt đọc
29,420 lượt đọc

Tự động hóa web với Python và Selenium

từ tác giả Teri Eyenike5m2022/09/10
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Tự động hóa web là một trong những cách tốt nhất mà các công ty có thể kiểm tra một sản phẩm đang trong quá trình phát triển, đặc biệt là các chức năng của ứng dụng, chẳng hạn như nhấp, cuộn và các hành động khác. Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng Selenium như một công cụ tự động hóa để kiểm tra một trang web bằng Python và tự động hóa toàn bộ quy trình mà không cần sử dụng chuột hoặc bàn phím trên trình duyệt. Selenium cho phép chúng tôi duyệt hoặc sử dụng trình duyệt mà không cần con người tham gia và tự động hóa các quy trình như nhập dữ liệu nhập của người dùng và tương tác với trang web. Ví dụ: có thể tự động gửi biểu mẫu bằng Selenium.
featured image - Tự động hóa web với Python và Selenium
Teri Eyenike HackerNoon profile picture

Tự động hóa web là một trong những cách tốt nhất mà các công ty có thể kiểm tra một sản phẩm đang trong quá trình phát triển, đặc biệt là các chức năng của ứng dụng, chẳng hạn như nhấp, cuộn và các hành động khác.

Về cơ bản, tự động hóa web là bắt chước hành động của con người vì nó rất quan trọng để đảm bảo phần mềm hoạt động trên tất cả các loại thiết bị của người dùng.

Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng Selenium như một công cụ tự động hóa để kiểm tra một trang web bằng Python và tự động hóa toàn bộ quy trình mà không cần sử dụng chuột hoặc bàn phím trên trình duyệt. Selenium không hoạt động với Python mà còn với nhiều ngôn ngữ lập trình khác.

Selenium được sử dụng để làm gì?

Selenium cho phép chúng tôi duyệt hoặc sử dụng trình duyệt mà không cần con người tham gia và tự động hóa các quy trình thông qua mã, chẳng hạn như nhập vào đầu vào của người dùng và tương tác với trang web. Ví dụ: có thể tự động gửi biểu mẫu bằng Selenium. Selenium tự làm mọi thứ mà không cần một cú nhấp chuột từ con người.

Bắt đầu

Trước khi Selenium có thể thực hiện bất kỳ hành động nào thông qua mã, chúng ta cần các gói và công cụ để có thể chạy trình duyệt tự động hóa và làm cho nó liền mạch.

Cài đặt

Phần này, chúng tôi cài đặt gói Selenium và tệp thực thi WebDriver. Trước tiên, hãy kiểm tra phiên bản của trình duyệt Chrome để nó tương đương với phiên bản tương tự của tệp thực thi WebDriver.

Những thứ sau cần được cài đặt trên máy cục bộ của chúng tôi:

Trình duyệt Chrome. Tải xuống tại đây

Tải xuống bản phát hành ổn định mới nhất của ChromeDriver . Trên trang ChromeDriver, hãy kiểm tra để xác nhận phiên bản Chrome khớp với phiên bản của ChromeDriver

Bây giờ, hãy chạy lệnh này để cài đặt Selenium trong thiết bị đầu cuối của bạn:

 pip install selenium

Tự động hóa một trang web

Để bắt đầu, hãy tạo một thư mục mới chứa tệp và các tệp thực thi ChromeDriver đã tải xuống. Selenium yêu cầu trình điều khiển giao diện với trình duyệt đã chọn, trong hướng dẫn này, chúng tôi đang sử dụng trình duyệt Chrome.

Điều cần thiết là phải đặt ChromeDriver trong cùng thư mục với tệp Python.

Thư mục cho dự án sẽ trông như thế này:

Một cách khác để sử dụng ChromeDriver trong dự án này là tìm vị trí đường dẫn của tệp và sao chép nó, trông giống như sau:

Người dùng MacBook:

/ Users / <tên người dùng máy tính> / Desktop / chromedriver

Người dùng Windows:

C: \ Users \ <tên người dùng máy tính \ Desktop \ chromdriver

WebDriver là cầu nối giúp mã Selenium hoạt động với trình duyệt Chrome. Trình duyệt Chrome cung cấp cầu nối. Nếu không có nó, tự động hóa sẽ không thể thực hiện được.

Tiếp theo, hãy sao chép và dán đoạn mã sau vào

 automation.py
tập tin:

 # automation.py
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys chrome_driver_path = './chromedriver'
service = Service(chrome_drive_path) driver = webdriver.Chrome(service=service) url = "https://en.wikipedia.org/wiki/Main_Page"
driver.get(url) article_count = driver.find_element(By.CSS_SELECTOR, "#articlecount a" ) print (article_count.text) drive.close()

Điều sau xảy ra trong đoạn mã ở trên vì chúng tôi sẽ sử dụng Selenium để điều hướng Wikipedia:

  • Nhập trình duyệt web chức năng từ mô-đun selen
  • Các
     selenium.webdriver
    mô-đun cung cấp tất cả các triển khai WebDriver và đối tượng Dịch vụ là để xử lý trình điều khiển trình duyệt
  • Các
     By
    lớp được sử dụng để định vị các phần tử trong tài liệu của một trang web bằng cách sử dụng các lớp CSS, id, v.v.
  • Lớp Keys mô phỏng các hành động từ việc nhấn phím của bàn phím như RETURN / Enter, F1, Alt, v.v.
  • Gán tệp thực thi chromedriver cho một biến
  • Gọi đường dẫn thực thi của trình điều khiển đến đối tượng dịch vụ
  • Tiếp theo là khởi tạo trình duyệt Chrome với
     webdriver.Chrome()
    với đối số dịch vụ
  • Xác định url của trang web để kiểm tra
  • Sử dụng
     .get()
    phương thức sẽ điều hướng đến trang được cung cấp bởi url

Trên trang Wikipedia, mở phần tử kiểm tra để truy cập các phần tử mà chúng tôi sẽ sử dụng để lấy thông tin chi tiết từ trang để tự động hóa.

Bây giờ đến nhiệm vụ tìm số lượng bài báo. WebDriver cung cấp cho chúng tôi một cách để làm như vậy bằng cách nhắm mục tiêu phần tử bằng phương thức find_element và sử dụng

 By.CSS_SELECTOR
là tham số đầu tiên với tên bộ chọn,
 #articlecount a.


Trước khi chúng tôi chạy chương trình Python, tập lệnh có phương thức,

 driver.close()
, sẽ đóng cửa sổ trình duyệt sau khi chạy thử nghiệm.

Chạy chương trình bằng lệnh:

 python automation.py

Kết quả từ thiết bị đầu cuối sẽ hiển thị số lượng bài viết, hiển thị con số chính xác trên trang web, 6,545,457 .

Mô phỏng một hành động nhấp chuột

Từ những gì chúng tôi đã làm cho đến nay, rõ ràng là Selenium điều hướng một trang web mà không cần sử dụng hoặc nhấp chuột.

Bây giờ, hãy mô phỏng một hành động trong đó trình duyệt phản ứng với một cú nhấp chuột vào một liên kết trên trang.

Cập nhật

 automation.py
với những dòng mã sau:

 # automation.py # import modules contact_us = driver.find_element(By.LINK_TEXT, "Contact us" ) contact_us.click()

Với đoạn mã này, chúng tôi đang tìm phần tử cho văn bản liên kết, "Liên hệ với chúng tôi" với

 By.LINK_TEXT
. Sau khi xác định vị trí các phần tử, hãy đính kèm
 contact_us
hành động với
 .click()
phương pháp.

Một lần nữa, chúng tôi chạy lệnh:

 python automation.py


Lệnh trên cho kết quả của trang liên hệ với chúng tôi.

Tìm kiếm một trang web

Có rất nhiều trường hợp sử dụng với Selenium. Việc tìm kiếm một trang web có thể thực hiện được với sự tự động hóa, điều này mang lại cho bạn kết quả cho một từ tìm kiếm.

Tuy nhiên, trong cùng một tệp, Automation.py, hãy cập nhật tệp bằng mã này:

 # automation.py search = driver.find_element(By.NAME, "search" ) search.send_keys( "React" , Keys.ENTER)

Đoạn mã trên thực hiện một điều tương tự như đoạn mã trước đó bằng cách sử dụng

 find_element
phương thức với thuộc tính tên của đầu vào, tìm kiếm.

Ngoài ra,

 send_keys
mô phỏng việc nhấn phím ENTER, tìm kiếm từ khóa React .

Kết quả của trang sẽ như thế này:

Sự kết luận

Bài viết này là tổng quan về cách sử dụng Selenium trong Python để tự động hóa web, đặc biệt dành cho các nhà phát triển chuyên nghiệp muốn biết liệu có lỗi trong mã hay không và cách khắc phục chúng.

Khả năng sử dụng Selenium với Python để tự động hóa web là vô tận. Một số trường hợp sử dụng bao gồm điền vào biểu mẫu trực tuyến, nộp đơn xin việc trên LinkedIn, chơi trò chơi clicker, v.v. Bạn có biết các trường hợp sử dụng khác để sử dụng Selenium không?

Vui lòng chia sẻ trường hợp sử dụng yêu thích của bạn trong phần bình luận bên dưới.

Tìm hiểu thêm