Giới thiệu về Selenium trong Python 3

Introduction Selenium Python 3



Selenium là một khuôn khổ được sử dụng để thử nghiệm các ứng dụng web. Selenium tự động hóa một trình duyệt, chẳng hạn như Chrome hoặc Firefox, để chạy thử nghiệm trên trang web mong muốn của bạn. Selenium cũng là một công cụ quét web rất mạnh mẽ. Selenium hỗ trợ JavaScript và tất cả các tính năng hiện đại của trình duyệt. Công cụ này rất hiệu quả trong việc trích xuất thông tin từ các trang web.

Bài viết này sẽ chỉ cho bạn cách thiết lập Selenium trên bản phân phối Linux của bạn (tức là Ubuntu), cũng như cách thực hiện tự động hóa web cơ bản và quét web với thư viện Selenium Python 3.







Điều kiện tiên quyết

Để thử các lệnh và ví dụ được sử dụng trong bài viết này, bạn phải có những điều sau:



1) Bản phân phối Linux (tốt nhất là Ubuntu) được cài đặt trên máy tính của bạn.
2) Đã cài đặt Python 3 trên máy tính của bạn.
3) PIP 3 được cài đặt trên máy tính của bạn.
4) Trình duyệt web Google Chrome hoặc Firefox được cài đặt trên máy tính của bạn.



Bạn có thể tìm thấy nhiều bài viết về các chủ đề này tại LinuxHint.com . Hãy chắc chắn kiểm tra các bài viết này nếu bạn cần thêm bất kỳ hỗ trợ nào.





Chuẩn bị môi trường ảo Python 3 cho dự án

Môi trường ảo Python được sử dụng để tạo một thư mục dự án Python cô lập. Các mô-đun Python mà bạn cài đặt bằng PIP sẽ chỉ được cài đặt trong thư mục dự án, thay vì trên toàn cầu.

Con trăn virtualenv mô-đun được sử dụng để quản lý môi trường ảo Python.



Bạn có thể cài đặt Python virtualenv mô-đun toàn cầu sử dụng PIP 3, như sau:

$ sudo pip3 cài đặt virtualenv

PIP3 sẽ tải xuống và cài đặt toàn cầu tất cả các mô-đun được yêu cầu.

Tại thời điểm này, Python virtualenv mô-đun nên được cài đặt trên toàn cầu.

Tạo thư mục dự án python-selen-cơ bản / trong thư mục làm việc hiện tại của bạn, như sau:

$ mkdir -pv python-selenium-basic / driver

Điều hướng đến thư mục dự án mới tạo của bạn python-selen-cơ bản / , như sau:

$đĩa CDpython-selen-cơ bản /

Tạo môi trường ảo Python trong thư mục dự án của bạn bằng lệnh sau:

$ virtualenv.env

Môi trường ảo Python bây giờ sẽ được tạo trong thư mục dự án của bạn. '

Kích hoạt môi trường ảo Python trong thư mục dự án của bạn thông qua lệnh sau:

nguồn $.env/ bin / kích hoạt

Như bạn có thể thấy, môi trường ảo Python được kích hoạt cho thư mục dự án này.

Cài đặt thư viện Python Selenium

Thư viện Selenium Python có sẵn trong kho lưu trữ Python PyPI chính thức.

Bạn có thể cài đặt thư viện này bằng PIP 3, như sau:

$ pip3 cài đặt selen

Thư viện Selenium Python bây giờ sẽ được cài đặt.

Bây giờ thư viện Selenium Python đã được cài đặt, điều tiếp theo bạn phải làm là cài đặt trình điều khiển web cho trình duyệt web yêu thích của bạn. Trong bài viết này, tôi sẽ hướng dẫn bạn cách cài đặt trình điều khiển web Firefox và Chrome cho Selenium.

Cài đặt trình điều khiển Firefox Gecko

Trình điều khiển Firefox Gecko cho phép bạn điều khiển hoặc tự động hóa trình duyệt web Firefox bằng Selenium.

Để tải xuống Trình điều khiển Firefox Gecko, hãy truy cập Trang phát hành GitHub của mozilla / geckodriver từ trình duyệt web.

Như bạn có thể thấy, v0.26.0 là phiên bản mới nhất của Trình điều khiển Firefox Gecko tại thời điểm bài viết này được viết.

Để tải xuống Trình điều khiển Firefox Gecko, hãy cuộn xuống một chút và nhấp vào kho lưu trữ tar.gz của geckodriver Linux, tùy thuộc vào kiến ​​trúc hệ điều hành của bạn.

Nếu bạn đang sử dụng hệ điều hành 32 bit, hãy nhấp vào geckodriver-v0.26.0-linux32.tar.gz liên kết.

Nếu bạn đang sử dụng hệ điều hành 64 bit, hãy nhấp vào geckodriver-v0.26.0-linuxx64.tar.gz liên kết.

Trong trường hợp của tôi, tôi sẽ tải xuống phiên bản 64-bit của Trình điều khiển Firefox Gecko.

Trình duyệt của bạn sẽ nhắc bạn lưu kho lưu trữ. Lựa chọn Lưu tập tin và sau đó nhấp vào VÂNG .

Lưu trữ Trình điều khiển Firefox Gecko nên được tải xuống trong ~ / Tải xuống danh mục.

Trích xuất geckodriver-v0.26.0-linux64.tar.gz lưu trữ từ ~ / Tải xuống thư mục đến trình điều khiển / thư mục của dự án của bạn bằng cách nhập lệnh sau:

$nhựa đường -xzf~/Tải xuống/geckodriver-v0.26.0-linux64.tar.gz-NSngười lái xe/

Khi kho lưu trữ Trình điều khiển Firefox Gecko được giải nén, một người lái tắc kè tệp nhị phân phải được tạo trong trình điều khiển / thư mục của dự án của bạn, như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Kiểm tra trình điều khiển Selenium Firefox Gecko

Trong phần này, tôi sẽ chỉ cho bạn cách thiết lập tập lệnh Selenium Python đầu tiên của bạn để kiểm tra xem Trình điều khiển Firefox Gecko có hoạt động hay không.

Đầu tiên, mở thư mục dự án python-selen-cơ bản / với IDE hoặc trình soạn thảo yêu thích của bạn. Trong bài viết này, tôi sẽ sử dụng Visual Studio Code.

Tạo tập lệnh Python mới ex01.py và nhập các dòng sau vào tập lệnh.

từselennhập khẩuwebdriver
từselen.webdriver.chung.chìa khóa nhập khẩuChìa khóa
từ thời gian nhập khẩungủ
trình duyệt=webdriver.Firefox(thực thi_path='./drivers/geckodriver')
trình duyệt.hiểu được('http://www.google.com')
ngủ(5)
trình duyệt.từ bỏ()

Khi bạn đã hoàn tất, hãy lưu ex01.py Tập lệnh Python.

Tôi sẽ giải thích mã trong phần sau của bài viết này.

Dòng sau định cấu hình Selenium để sử dụng Trình điều khiển Firefox Gecko từ trình điều khiển / thư mục của dự án của bạn.

Để kiểm tra xem Trình điều khiển Firefox Gecko có hoạt động với Selenium hay không, hãy chạy như sau ex01.py Tập lệnh Python:

$ python3 ex01.py

Trình duyệt web Firefox sẽ tự động truy cập Google.com và tự đóng sau 5 giây. Nếu điều này xảy ra, thì Trình điều khiển Selenium Firefox Gecko đang hoạt động bình thường.

Cài đặt trình điều khiển web của Chrome

Trình điều khiển web của Chrome cho phép bạn điều khiển hoặc tự động hóa trình duyệt web Google Chrome bằng Selenium.

Bạn phải tải xuống phiên bản Trình điều khiển web Chrome giống như phiên bản của trình duyệt web Google Chrome của bạn.

Để tìm số phiên bản của trình duyệt web Google Chrome của bạn, hãy truy cập chrome: // settings / help trong Google Chrome. Số phiên bản phải ở Giới thiệu về Chrome , như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Trong trường hợp của tôi, số phiên bản là 83.0.4103.116 . Ba phần đầu tiên của số phiên bản ( 83.0.4103 , trong trường hợp của tôi) phải khớp với ba phần đầu tiên của số phiên bản Trình điều khiển web Chrome.

Để tải xuống Trình điều khiển web của Chrome, hãy truy cập trang tải xuống Trình điều khiển Chrome chính thức .

bên trong Bản phát hành hiện tại , Trình điều khiển web của Chrome dành cho các bản phát hành mới nhất của trình duyệt web Google Chrome sẽ khả dụng, như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Nếu phiên bản Google Chrome bạn đang sử dụng không có trong Bản phát hành hiện tại , cuộn xuống một chút và bạn sẽ tìm thấy phiên bản mong muốn của mình.

Khi bạn nhấp vào đúng phiên bản Trình điều khiển web Chrome, nó sẽ đưa bạn đến trang sau. Bấm vào chromedriver_linux64.zip liên kết, như được ghi chú trong ảnh chụp màn hình bên dưới.

Bản lưu trữ Trình điều khiển web của Chrome bây giờ sẽ được tải xuống.

Bản lưu trữ Trình điều khiển web của Chrome bây giờ sẽ được tải xuống trong ~ / Tải xuống danh mục.

Bạn có thể giải nén chromedriver-linux64.zip lưu trữ từ ~ / Tải xuống thư mục đến trình điều khiển / thư mục của dự án của bạn bằng lệnh sau:

$ giải nén~/ Tải xuống / chromedriver_linux64.zip-d trình điều khiển /

Sau khi bản lưu trữ Trình điều khiển web của Chrome đã được giải nén, một người đánh bóng tệp nhị phân phải được tạo trong trình điều khiển / thư mục của dự án của bạn, như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Kiểm tra trình điều khiển web Selenium Chrome

Trong phần này, tôi sẽ chỉ cho bạn cách thiết lập tập lệnh Selenium Python đầu tiên của bạn để kiểm tra xem Trình điều khiển web của Chrome có hoạt động hay không.

Đầu tiên, tạo tập lệnh Python mới ex02.py và nhập các dòng mã sau vào tập lệnh.

từselennhập khẩuwebdriver
từselen.webdriver.chung.chìa khóa nhập khẩuChìa khóa
từ thời gian nhập khẩungủ
trình duyệt=webdriver.Trình duyệt Chrome(thực thi_path='./drivers/chromedriver')
trình duyệt.hiểu được('http://www.google.com')
ngủ(5)
trình duyệt.từ bỏ()

Khi bạn đã hoàn tất, hãy lưu ex02.py Tập lệnh Python.

Tôi sẽ giải thích mã trong phần sau của bài viết này.

Dòng sau định cấu hình Selenium để sử dụng Trình điều khiển Web Chrome từ trình điều khiển / thư mục của dự án của bạn.

Để kiểm tra xem Trình điều khiển web của Chrome có hoạt động với Selenium hay không, hãy chạy ex02.py Tập lệnh Python, như sau:

$ python3 ex01.py

Trình duyệt web Google Chrome sẽ tự động truy cập Google.com.vn và tự đóng sau 5 giây. Nếu điều này xảy ra, thì Trình điều khiển Selenium Firefox Gecko đang hoạt động bình thường.

Khái niệm cơ bản về Web Scraping với Selenium

Tôi sẽ sử dụng trình duyệt web Firefox từ bây giờ. Bạn cũng có thể sử dụng Chrome nếu muốn.

Một tập lệnh Selenium Python cơ bản sẽ giống như tập lệnh được hiển thị trong ảnh chụp màn hình bên dưới.

Đầu tiên, nhập Selenium webdriver từ selen mô-đun.

Tiếp theo, nhập Chìa khóa từ selenium.webdriver.common.keys . Thao tác này sẽ giúp bạn gửi các lần nhấn phím trên bàn phím đến trình duyệt mà bạn đang tự động hóa từ Selenium.

Dòng sau đây tạo ra một trình duyệt đối tượng cho trình duyệt web Firefox bằng Trình điều khiển Firefox Gecko (Webdriver). Bạn có thể kiểm soát các hành động của trình duyệt Firefox bằng cách sử dụng đối tượng này.

Để tải một trang web hoặc URL (Tôi sẽ tải trang web https://www.duckduckgo.com ), gọi hiểu được() phương pháp của trình duyệt đối tượng trên trình duyệt Firefox của bạn.

Sử dụng Selenium, bạn có thể viết các bài kiểm tra của mình, thực hiện quét web và cuối cùng, đóng trình duyệt bằng cách sử dụng từ bỏ() phương pháp của trình duyệt sự vật.

Trên đây là bố cục cơ bản của một script Selenium Python. Bạn sẽ viết những dòng này trong tất cả các tập lệnh Selenium Python của mình.

Ví dụ 1: In tiêu đề của trang web

Đây sẽ là ví dụ dễ dàng nhất được thảo luận bằng cách sử dụng Selenium. Trong ví dụ này, chúng tôi sẽ in tiêu đề của trang web mà chúng tôi sẽ truy cập.

Tạo tệp mới ex04.py và nhập các dòng mã sau vào đó.

từselennhập khẩuwebdriver
từselen.webdriver.chung.chìa khóa nhập khẩuChìa khóa

trình duyệt=webdriver.Firefox(thực thi_path='./drivers/geckodriver')

trình duyệt.hiểu được('https://www.duckduckgo.com')
in('Tiêu đề:% s'% trình duyệt.chức vụ)
trình duyệt.từ bỏ()

Khi bạn đã hoàn tất, hãy lưu tệp.

Đây, browser.title được sử dụng để truy cập vào tiêu đề của trang web đã truy cập và in() chức năng sẽ được sử dụng để in tiêu đề trong bảng điều khiển.

Sau khi chạy ex04.py script, nó phải:

1) Mở Firefox
2) Tải trang web mong muốn của bạn
3) Tìm nạp tiêu đề của trang
4) In tiêu đề trên bảng điều khiển
5) Và cuối cùng, đóng trình duyệt

Như bạn có thể thấy, ex04.py script đã in tiêu đề của trang web một cách độc đáo trong bảng điều khiển.

$ python3 ex04.py

Ví dụ 2: In tiêu đề của nhiều trang web

Như trong ví dụ trước, bạn có thể sử dụng cùng một phương pháp để in tiêu đề của nhiều trang web bằng cách sử dụng vòng lặp Python.

Để hiểu cách hoạt động của điều này, hãy tạo tập lệnh Python mới ex05.py và nhập các dòng mã sau vào tập lệnh:

từselennhập khẩuwebdriver
từselen.webdriver.chung.chìa khóa nhập khẩuChìa khóa

trình duyệt=webdriver.Firefox(thực thi_path='./drivers/geckodriver')


url= ['https://www.duckduckgo.com', 'https://linuxhint.com', 'https://yahoo.com']
urltrongurl:
trình duyệt.hiểu được(url)
in('Tiêu đề:% s'% trình duyệt.chức vụ)
trình duyệt.từ bỏ()

Khi bạn đã hoàn tất, hãy lưu tập lệnh Python ex05.py .

Đây, url danh sách giữ URL của mỗi trang web.

ĐẾN vòng lặp được sử dụng để lặp qua url Danh sách sản phẩm.

Trên mỗi lần lặp lại, Selenium yêu cầu trình duyệt truy cập vào url và lấy tiêu đề của trang web. Khi Selenium đã trích xuất tiêu đề của trang web, nó sẽ được in trong bảng điều khiển.

Chạy tập lệnh Python ex05.py và bạn sẽ thấy tiêu đề của mỗi trang web trong url danh sách.

$ python3 ex05.py

Đây là một ví dụ về cách Selenium có thể thực hiện cùng một tác vụ với nhiều trang web hoặc trang web.

Ví dụ 3: Trích xuất dữ liệu từ một trang web

Trong ví dụ này, tôi sẽ chỉ cho bạn những kiến ​​thức cơ bản về cách trích xuất dữ liệu từ các trang web bằng Selenium. Điều này còn được gọi là quét web.

Đầu tiên, hãy truy cập Random.org liên kết từ Firefox. Trang sẽ tạo một chuỗi ngẫu nhiên, như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Để trích xuất dữ liệu chuỗi ngẫu nhiên bằng Selenium, bạn cũng phải biết biểu diễn HTML của dữ liệu.

Để xem dữ liệu chuỗi ngẫu nhiên được biểu diễn như thế nào trong HTML, hãy chọn dữ liệu chuỗi ngẫu nhiên và nhấn nút chuột phải (RMB) và nhấp vào Kiểm tra phần tử (Q) , như được ghi chú trong ảnh chụp màn hình bên dưới.

Biểu diễn HTML của dữ liệu phải được hiển thị trong Thanh tra như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Bạn cũng có thể nhấp vào Kiểm tra biểu tượng ( ) để kiểm tra dữ liệu từ trang.

Nhấp vào biểu tượng kiểm tra () và di chuột qua dữ liệu chuỗi ngẫu nhiên mà bạn muốn trích xuất. Biểu diễn HTML của dữ liệu sẽ được hiển thị như trước.

Như bạn có thể thấy, dữ liệu chuỗi ngẫu nhiên được bao bọc trong một HTML gắn thẻ và chứa lớp dữ liệu .

Bây giờ chúng ta đã biết biểu diễn HTML của dữ liệu mà chúng ta muốn trích xuất, chúng ta sẽ tạo một tập lệnh Python để trích xuất dữ liệu bằng cách sử dụng Selenium.

Tạo tập lệnh Python mới ex06.py và nhập các dòng mã sau vào tập lệnh

từselennhập khẩuwebdriver
từselen.webdriver.chung.chìa khóa nhập khẩuChìa khóa

trình duyệt=webdriver.Firefox(thực thi_path='./drivers/geckodriver')

trình duyệt.hiểu được('https://www.random.org/strings/?num=1&len=20&digits
= on & upperalpha = on & loweralpha = on & unique = on & format = html & rnd = new '
)

dataElement=trình duyệt.find_element_by_css_selector('pre.data')
in(dataElement.chữ)
trình duyệt.từ bỏ()

Khi bạn đã hoàn tất, hãy lưu ex06.py Tập lệnh Python.

Đây, browser.get () phương pháp tải trang web trong trình duyệt Firefox.

Các browser.find_element_by_css_selector () phương thức tìm kiếm mã HTML của trang cho một phần tử cụ thể và trả về phần tử đó.

Trong trường hợp này, phần tử sẽ là pre.data , NS thẻ có tên lớp dữ liệu .

Dưới đây, pre.data phần tử đã được lưu trữ trong dataElement Biến đổi.

Sau đó, tập lệnh sẽ in nội dung văn bản của phần đã chọn pre.data yếu tố.

Nếu bạn chạy ex06.py Tập lệnh Python, nó sẽ trích xuất dữ liệu chuỗi ngẫu nhiên từ trang web, như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

$ python3 ex06.py

Như bạn có thể thấy, mỗi lần tôi chạy ex06.py Tập lệnh Python, nó trích xuất một chuỗi dữ liệu ngẫu nhiên khác từ trang web.

Ví dụ 4: Trích xuất danh sách dữ liệu từ trang web

Ví dụ trước đã cho bạn thấy cách trích xuất một phần tử dữ liệu từ một trang web bằng cách sử dụng Selenium. Trong ví dụ này, tôi sẽ chỉ cho bạn cách sử dụng Selenium để trích xuất danh sách dữ liệu từ một trang web.

Đầu tiên, hãy truy cập random-name-generator.info từ trình duyệt web Firefox của bạn. Trang web này sẽ tạo ra mười tên ngẫu nhiên mỗi khi bạn tải lại trang, như bạn có thể thấy trong ảnh chụp màn hình bên dưới. Mục tiêu của chúng tôi là trích xuất những tên ngẫu nhiên này bằng cách sử dụng Selenium.

Nếu bạn kiểm tra danh sách tên kỹ hơn, bạn có thể thấy rằng đó là một danh sách có thứ tự ( chết nhãn). Các chết thẻ cũng bao gồm tên lớp danh sách tên . Mỗi tên ngẫu nhiên được biểu diễn dưới dạng một mục danh sách ( tại tag) bên trong chết nhãn.

Để trích xuất các tên ngẫu nhiên này, hãy tạo tập lệnh Python mới ex07.py và nhập các dòng mã sau vào tập lệnh.

từselennhập khẩuwebdriver
từselen.webdriver.chung.chìa khóa nhập khẩuChìa khóa

trình duyệt=webdriver.Firefox(thực thi_path='./drivers/geckodriver')

trình duyệt.hiểu được('http://random-name-generator.info/')

danh sách tên=trình duyệt.find_elements_by_css_selector('ol.nameList li')

Têntrongdanh sách tên:
in(Tên.chữ)

trình duyệt.từ bỏ()

Khi bạn đã hoàn tất, hãy lưu ex07.py Tập lệnh Python.

Đây, browser.get () phương thức tải trang web tạo tên ngẫu nhiên trong trình duyệt Firefox.

Các browser.find_elements_by_css_selector () phương pháp sử dụng bộ chọn CSS ol.nameList li để tìm tất cả tại các yếu tố bên trong chết thẻ có tên lớp danh sách tên . Tôi đã lưu trữ tất cả những thứ đã chọn tại các yếu tố trong danh sách tên Biến đổi.

ĐẾN vòng lặp được sử dụng để lặp qua danh sách tên danh sách của tại các yếu tố. Trong mỗi lần lặp lại, nội dung của tại phần tử được in trên bảng điều khiển.

Nếu bạn chạy ex07.py Tập lệnh Python, nó sẽ tìm nạp tất cả các tên ngẫu nhiên từ trang web và in nó trên màn hình, như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

$ python3 ex07.py

Nếu bạn chạy tập lệnh lần thứ hai, tập lệnh sẽ trả về một danh sách mới gồm các tên người dùng ngẫu nhiên, như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Ví dụ 5: Gửi biểu mẫu - Tìm kiếm trên DuckDuckGo

Ví dụ này cũng đơn giản như ví dụ đầu tiên. Trong ví dụ này, tôi sẽ truy cập công cụ tìm kiếm DuckDuckGo và tìm kiếm cụm từ selen hq bằng cách sử dụng Selenium.

Lân đâu tơi thăm Công cụ tìm kiếm DuckDuckGo từ trình duyệt web Firefox.

Nếu bạn kiểm tra trường đầu vào tìm kiếm, trường đó phải có id search_form_input_homepage , như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Bây giờ, hãy tạo tập lệnh Python mới ex08.py và nhập các dòng mã sau vào tập lệnh.

từselennhập khẩuwebdriver
từselen.webdriver.chung.chìa khóa nhập khẩuChìa khóa
trình duyệt=webdriver.Firefox(thực thi_path='./drivers/geckodriver')
trình duyệt.hiểu được('https://duckduckgo.com/')
searchInput=trình duyệt.find_element_by_id('search_form_input_homepage')
searchInput.send_keys('selen hq'+ Chìa khóa.ĐI VÀO)

Khi bạn đã hoàn tất, hãy lưu ex08.py Tập lệnh Python.

Đây, browser.get () phương thức tải trang chủ của công cụ tìm kiếm DuckDuckGo trong trình duyệt web Firefox.

Các browser.find_element_by_id () phương thức chọn phần tử đầu vào với id search_form_input_homepage và lưu trữ nó trong searchInput Biến đổi.

Các searchInput.send_keys () được sử dụng để gửi dữ liệu nhấn phím đến trường nhập. Trong ví dụ này, nó gửi chuỗi selen hq và phím Enter được nhấn bằng cách sử dụng Keys.ENTER hằng số.

Ngay sau khi công cụ tìm kiếm DuckDuckGo nhận được phím Enter ( Keys.ENTER ), nó tìm kiếm và hiển thị kết quả.

Chạy ex08.py Tập lệnh Python, như sau:

$ python3 ex08.py

Như bạn có thể thấy, trình duyệt web Firefox đã truy cập vào công cụ tìm kiếm DuckDuckGo.

Nó tự động gõ selen hq trong hộp văn bản tìm kiếm.

Ngay sau khi trình duyệt nhận được phím Enter, hãy nhấn ( Keys.ENTER ), nó hiển thị kết quả tìm kiếm.

Ví dụ 6: Gửi Biểu mẫu trên W3Schools.com

Trong ví dụ 5, việc gửi biểu mẫu cho công cụ tìm kiếm DuckDuckGo rất dễ dàng. Tất cả những gì bạn phải làm là nhấn phím Enter. Nhưng điều này sẽ không đúng với tất cả các lần gửi biểu mẫu. Trong ví dụ này, tôi sẽ chỉ cho bạn cách xử lý biểu mẫu phức tạp hơn.

Đầu tiên, hãy truy cập Trang HTML Forms của W3Schools.com từ trình duyệt web Firefox. Sau khi tải trang, bạn sẽ thấy một biểu mẫu ví dụ. Đây là biểu mẫu chúng tôi sẽ gửi trong ví dụ này.

Nếu bạn kiểm tra biểu mẫu, Tên đầu tiên trường đầu vào phải có id biệt danh , NS Họ trường đầu vào phải có id tên , và Nút gửi nên có kiểu Gửi đi , như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Để gửi biểu mẫu này bằng Selenium, hãy tạo tập lệnh Python mới ex09.py và nhập các dòng mã sau vào tập lệnh.

từselennhập khẩuwebdriver
từselen.webdriver.chung.chìa khóa nhập khẩuChìa khóa
trình duyệt=webdriver.Firefox(thực thi_path='./drivers/geckodriver')
trình duyệt.hiểu được('https://www.w3schools.com/html/html_forms.asp')
biệt danh=trình duyệt.find_element_by_id('fname')
biệt danh.sạch()
biệt danh.send_keys('Shahriar')
tên=trình duyệt.find_element_by_id('tên')
tên.sạch()
tên.send_keys('Shovon')
submitButton=trình duyệt.find_element_by_css_selector('input [type =' submit ']')
submitButton.send_keys(Chìa khóa.ĐI VÀO)

Khi bạn đã hoàn tất, hãy lưu ex09.py Tập lệnh Python.

Đây, browser.get () phương pháp này sẽ mở ra trang biểu mẫu HTML của W3schools trong trình duyệt web Firefox.

Các browser.find_element_by_id () phương thức tìm các trường đầu vào theo id biệt danhtên và nó lưu trữ chúng trong biệt danhtên các biến tương ứng.

Các fname.clear ()lname.clear () phương thức xóa tên mặc định (John) biệt danh giá trị và họ (Doe) tên giá trị từ các trường đầu vào.

Các fname.send_keys ()lname.send_keys () loại phương pháp ShahriarShovon bên trong Tên đầu tiênHọ các trường đầu vào tương ứng.

Các browser.find_element_by_css_selector () phương pháp chọn Nút gửi của biểu mẫu và lưu trữ nó trong submitButton Biến đổi.

Các submitButton.send_keys () phương thức gửi nhấn phím Enter ( Keys.ENTER ) đến Nút gửi của biểu mẫu. Hành động này sẽ gửi biểu mẫu.

Chạy ex09.py Tập lệnh Python, như sau:

$ python3 ex09.py

Như bạn có thể thấy, biểu mẫu đã được tự động gửi với các đầu vào chính xác.

Phần kết luận

Bài viết này sẽ giúp bạn bắt đầu với thử nghiệm trình duyệt Selenium, tự động hóa web và thư viện duyệt web bằng Python 3. Để biết thêm thông tin, hãy xem Tài liệu chính thức về Python của Selenium .