Cách cuộn xuống trong danh sách thả xuống trong Selenium Python

Trước khi tiếp tục với phần này, trước tiên chúng ta hãy hiểu một số khái niệm cơ bản về xử lý trình đơn thả xuống trong Selenium WebDriver

Chọn trong Selenium WebDriver

Lớp 'Chọn' trong Selenium WebDriver được sử dụng để chọn và bỏ chọn tùy chọn trong danh sách thả xuống. Các đối tượng của loại Chọn có thể được khởi tạo bằng cách chuyển webElement thả xuống dưới dạng tham số cho hàm tạo của nó

Làm cách nào để chọn một tùy chọn từ trình đơn thả xuống?

WebDriver cung cấp ba cách để chọn một tùy chọn từ trình đơn thả xuống

1. selectByIndex - Nó được sử dụng để chọn một tùy chọn dựa trên chỉ mục của nó, bắt đầu bằng 0

2. selectByValue - Nó được sử dụng để chọn một tùy chọn dựa trên thuộc tính 'giá trị' của nó

3. selectByVisibleText - Nó được sử dụng để chọn một tùy chọn dựa trên văn bản trên tùy chọn

Hãy để chúng tôi xem xét một trường hợp thử nghiệm trong đó chúng tôi sẽ tự động hóa các tình huống sau

Chúng tôi sẽ tạo trường hợp thử nghiệm của mình từng bước để giúp bạn hiểu đầy đủ về cách xử lý trình đơn thả xuống trong WebDriver

Bước 1. Khởi chạy Eclipse IDE và mở bộ thử nghiệm hiện có "Demo_Test" mà chúng ta đã tạo trong các phần trước của hướng dẫn này

Bước 2. Nhấp chuột phải vào thư mục "src" và tạo Tệp lớp mới từ Mới> Lớp

Đặt tên Lớp của bạn là "Dropdwn_Test" và nhấp vào nút "Hoàn tất"

Bước 3. Hãy đến với nền tảng mã hóa

  • Để gọi trình duyệt Google Chrome, chúng tôi cần tải xuống ChromeDriver. exe và đặt thuộc tính hệ thống "Chạy thử nghiệm trên Trình duyệt Chrome" thành đường dẫn ChromeDriver của bạn. tập tin exe. Chúng ta đã thảo luận điều này trong các phần trước của hướng dẫn này. Bạn cũng có thể tham khảo "Chạy thử nghiệm trên trình duyệt Chrome" để biết cách tải và thiết lập thuộc tính Hệ thống cho trình điều khiển Chrome

Đây là mã mẫu để đặt thuộc tính hệ thống cho trình điều khiển Chrome

  • Sau đó, chúng ta phải khởi tạo trình điều khiển Chrome bằng ChromeDriver Class

Đây là mã mẫu để khởi tạo trình điều khiển Chrome bằng lớp ChromeDriver

Gộp cả 2 khối code trên ta được đoạn code khởi chạy trình duyệt Google Chrome

  • Sau đó, chúng ta cần viết mã để tự động hóa kịch bản thử nghiệm thứ hai [điều hướng đến URL mong muốn]

Đây là mã mẫu để điều hướng đến URL mong muốn

Mã hoàn chỉnh cho đến bây giờ sẽ trông giống như thế này

Bước 4. Bây giờ chúng tôi sẽ cố gắng xác định menu thả xuống bằng cách kiểm tra mã HTML của nó

Thực hiện theo các bước dưới đây để tìm trình đơn thả xuống trên trang web mẫu

  • Nó sẽ khởi chạy một cửa sổ chứa tất cả các mã cụ thể liên quan đến việc phát triển menu thả xuống
  • Ghi lại thuộc tính id của nó

Bước5. Để tự động hóa kịch bản thử nghiệm thứ ba của chúng tôi, chúng tôi cần viết mã sẽ chọn tùy chọn "Kiểm tra cơ sở dữ liệu" từ menu thả xuống

Đây là mã mẫu để

Ảnh chụp màn hình sau đây hiển thị cửa sổ Eclipse cho tập lệnh thử nghiệm của chúng tôi

Bước 6. Nhấp chuột phải vào mã Eclipse và chọn Chạy dưới dạng> Ứng dụng Java

Sau khi thực thi, tập lệnh thử nghiệm trên sẽ khởi chạy trình duyệt Chrome và tự động hóa tất cả các kịch bản thử nghiệm

Một trong những công cụ tự động hóa trình duyệt mã nguồn mở tốt nhất được công nhận trong thế giới ngày nay là Selenium và lớp Selenium WebDriver “

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4” cho phép chúng tôi xử lý menu thả xuống một cách trơn tru. Hôm nay, chúng ta sẽ cố gắng tìm ra tất cả những điều phức tạp của lớp “
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4” trên thực tế

Mục đích của Select Class

Lớp “

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4” trong selen cho phép chúng ta chuyển đổi trạng thái của menu thả xuống được tạo bằng các thẻ html
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
7. Có thể khởi tạo một đối tượng từ lớp này và áp dụng các phương thức khác nhau trên đối tượng này bất kể đó là menu thả xuống một lựa chọn hay nhiều lựa chọn. Cả hai phương thức chọn và bỏ chọn đều khả dụng cho đối tượng lớp
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4 trong khi phương thức bỏ chọn chỉ áp dụng cho các thẻ HTML
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
9 nơi có thể có nhiều lựa chọn giá trị

Khởi tạo một đối tượng của lớp chọn

Để bắt đầu quá trình, chúng tôi cần nhập

rating_dropdown = Select[rating]
0 từ gói selen. Chúng tôi sẽ sử dụng
rating_dropdown = Select[rating]
1 cho phép chúng tôi điều hướng qua trang web bằng trình duyệt chrome. Có một mô-đun
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4 đặc biệt có sẵn trong gói selen sẽ được nhập từ
rating_dropdown = Select[rating]
3

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
0

Đường dẫn Chromedriver được chỉ định và trình điều khiển đang sử dụng phương thức get để kết nối với trang web "tìm kiếm tiêu đề nâng cao IMDB"

Mục tiêu của chúng tôi là tự động hóa menu thả xuống xếp hạng của người dùng và đặt xếp hạng tối thiểu thành 7 vì tôi thích xem một bộ phim được xếp hạng cao. Bằng cách nhấp chuột phải vào menu thả xuống xếp hạng người dùng, chúng tôi có thể kiểm tra mã HTML

Hình ảnh. 1

                                                              

Từ mã HTML, ta có thể thấy thẻ HTML

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
7 được dùng để điều khiển menu thả xuống “đánh giá người dùng”, chúng ta có thể chọn thẻ này theo thuộc tính “
rating_dropdown = Select[rating]
5” và tạo một WebElement “
rating_dropdown = Select[rating]
6” rồi click vào đó

rating = driver.find_element_by_name['user_rating-min']
rating.click[]

Bây giờ chúng ta có thể dễ dàng khởi tạo một đối tượng của lớp

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4 bằng cách sử dụng từ khóa new. Sau khi tạo một đối tượng, chúng ta cần chuyển một danh sách thả xuống
rating_dropdown = Select[rating]
8 làm tham số cho hàm tạo của nó. Chúng ta đã tạo một biến
rating_dropdown = Select[rating]
6 kiểu
rating_dropdown = Select[rating]
8 và bây giờ chúng ta sẽ truyền nó như một tham số trong lớp “
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4” để tạo một đối tượng
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
02

rating_dropdown = Select[rating]

Nhớ. Lớp

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4 bắt đầu bằng chữ cái viết hoa “S” và phương thức
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
04 bắt đầu bằng chữ cái nhỏ “s”

Chọn một Giá trị từ Danh sách thả xuống

Lớp

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4 cung cấp cho chúng ta nhiều phương thức để chọn giá trị thả xuống. Hãy làm quen với những

select_by_visible_text[]

Từ mã HTML [Hình ảnh. 1] chúng ta có thể chọn một giá trị từ thẻ

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
06  với phương thức
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
04 bằng văn bản. chúng ta chỉ cần đặt văn bản mong muốn ở định dạng chuỗi bên trong dấu ngoặc đơn. Hãy thử đặt xếp hạng người dùng thành 7. 0

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
0

nếu chúng tôi chạy tập lệnh ngay bây giờ, chúng tôi sẽ thấy xếp hạng người dùng của mình được tự động đặt thành 7. 0 bởi trình điều khiển web Selenium

select_by_index[]

Chúng tôi muốn tải 100 kết quả trên mỗi trang cho mỗi tìm kiếm nâng cao. Làm thế nào chúng ta có thể làm điều đó? . Hãy thử đặt menu thả xuống thành 100 trên mỗi trang. Kiểm tra thẻ HTML và tìm thẻ chọn

Hình ảnh. 2

Như chúng ta có thể thấy 100 trên mỗi trang là thành phần thứ 2 của thẻ

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
7, chúng ta có thể sử dụng lập chỉ mục để đạt được điều đó

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
0

select_by_value[]

Bây giờ, chúng tôi sẽ chọn “Tiếng Anh” từ trình đơn thả xuống ngôn ngữ

Hình ảnh. 3

Khi chúng tôi kiểm tra HTML, chúng tôi có thể thấy phần tử “

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
00” có sẵn bên trong thẻ
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
06. Đầu tiên chúng ta cần tìm thẻ
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
7 rồi nhập giá trị đại diện cho ngôn ngữ tiếng Anh

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4

Chọn nhiều giá trị từ danh sách thả xuống

Từ bức ảnh. 3 chúng ta có thể thấy thuộc tính “

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
03” có sẵn bên trong thẻ
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
7. Thuộc tính “
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
03” này cho phép chúng tôi chọn nhiều giá trị từ danh sách ngôn ngữ thả xuống

Bây giờ, hãy nâng cao lựa chọn ngôn ngữ của chúng ta với ‘________ 306’ , ‘________ 307’ và ‘________ 308’

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
1

Nếu chúng tôi chạy mã, chúng tôi sẽ thấy '

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
06' và '
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
07' cũng được chọn bằng tiếng Anh

Cách bỏ chọn một giá trị từ nhiều giá trị được chọn

Cũng giống như phương thức chọn, chúng ta có thể sử dụng phương thức bỏ chọn để bỏ chọn giá trị từ nhiều giá trị được chọn. Tùy chọn này chỉ khả dụng cho danh sách thả xuống nhiều lựa chọn. Chúng tôi có thể bỏ chọn bất kỳ giá trị được chọn trước nào từ menu thả xuống nhiều lựa chọn bằng cách sử dụng các phương pháp khác nhau được thảo luận bên dưới

bỏ chọn_by_index[]

Bất kỳ giá trị được chọn trước nào cũng có thể được bỏ chọn bằng phương pháp

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
41. Điều này hoạt động, theo cách tương tự, phương thức
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
42 hoạt động. Chúng ta chỉ cần chọn chỉ mục của giá trị từ thẻ select. Hãy thử bỏ chọn ngôn ngữ “Afrikaans” khỏi danh sách ngôn ngữ thả xuống. vì chỉ mục của ngôn ngữ 'Afrikaans' là 4, mã phải là

Hình ảnh. 4

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
6

Ngôn ngữ 'Afrikanns' sẽ được bỏ chọn

bỏ chọn_by_value[]

Chúng ta có thể làm tương tự để bỏ chọn phần tử đã chọn bằng thuộc tính “

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
00”. như chúng ta có thể thấy thuộc tính giá trị của ngôn ngữ “Afrikaans” là
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
44, mã phải là

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
9

bỏ chọn_by_visible_text[]

Đối với phương thức

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
45, chúng ta có thể bỏ chọn một giá trị được chọn trước từ nhiều danh sách thả xuống bằng một thành phần văn bản. Nếu ngôn ngữ 'Afrikaans' đã được chọn và chúng tôi muốn bỏ chọn ngôn ngữ đó, chúng tôi có thể thực hiện như thế này

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
1

bỏ chọn tất cả[]

Đôi khi chúng ta cần xóa tất cả các giá trị đã được chọn. Trong trường hợp này, chúng tôi có thể sử dụng tùy chọn

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
46. Phương pháp này chỉ hoạt động khi có sẵn tùy chọn chọn “
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
03”. Hãy xóa tất cả các ngôn ngữ đã chọn khỏi danh sách ngôn ngữ thả xuống và làm cho nó mới

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
0

tất cả các mục đã chọn sẽ được bỏ chọn

Cách sử dụng tùy chọn

Nếu chúng tôi muốn biết có bao nhiêu tùy chọn khả dụng trong một trình đơn thả xuống nhất định, thì phương thức “tùy chọn” sẽ cho phép chúng tôi thực hiện chức năng linh hoạt. Hãy thử đếm xem có bao nhiêu tùy chọn có sẵn để lựa chọn trong trình đơn thả xuống 'ngôn ngữ'

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
1

Ở đây, biến '

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
48' được coi là một loại danh sách và chúng ta có thể sử dụng hàm '
rating = driver.find_element_by_name['user_rating-min']
rating.click[]
49' để lấy tổng số ngôn ngữ có thể được chọn. Kết quả sẽ có tổng cộng 334 ngôn ngữ

Chúng tôi có thể sử dụng lập chỉ mục danh sách để chọn bất kỳ ngôn ngữ nào với phương thức tùy chọn. hãy thử chọn ngôn ngữ đầu tiên từ menu thả xuống ngôn ngữ

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
2

Bây giờ chúng tôi muốn chọn tất cả các ngôn ngữ. Làm thế nào chúng ta có thể làm điều đó?

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
3

Nếu chúng tôi chạy mã, tất cả các ngôn ngữ sẽ được chọn

Phần kết luận

Đó là tất cả về lớp học “

rating = driver.find_element_by_name['user_rating-min']
rating.click[]
4” cho ngày hôm nay. Hy vọng bạn thích nó. Vui lòng di chuột đến liên kết này nếu bạn muốn tìm hiểu thêm và xem học viện email miễn phí của chúng tôi với các bảng gian lận Python và các khóa học Python miễn phí

Yassin Mahmud Abdul Quddus

Yassin Mahmud là một người đam mê blockchain và là người sáng tạo nội dung trong không gian blockchain. Được thúc đẩy bởi niềm đam mê công nghệ phân tán, anh ấy đã chuyển sang lĩnh vực chuỗi khối từ quá trình phát triển ngăn xếp MERN. Với hơn nửa thập kỷ kinh nghiệm hiện tại, anh ấy đang cố gắng đóng góp cho cộng đồng blockchain bằng bài viết của mình. Khi Yassin không viết lách, người ta có thể bắt gặp anh ta đang đi dạo dọc theo các bãi biển hoặc tham quan các địa điểm du lịch ngoạn mục

Làm cách nào để cuộn xuống và nhấp vào Selenium Python?

Cuộn xuống trang web .
#_*_mã hóa. utf-8_*_
từ Selenium nhập webdriver
thời gian nhập khẩu
trình duyệt. nhận ["https. // vi. wikipedia. tổ chức"]
trình duyệt. exec_script["cửa sổ. scrollTo[0,tài liệu. cơ thể người. scrollHeight]"]
thời gian. ngủ[3]

Làm cách nào để cuộn xuống phần tử cụ thể trong Selenium Webdriver Python?

1 câu trả lời .
từ selen. webdriver. phổ thông. action_chains nhập ActionChains
phần tử = trình điều khiển. find_element_by_id["my-id"]
hành động = ActionChains[trình điều khiển]
hành động. move_to_element[phần tử]. trình diễn[]
Hoặc, bạn cũng có thể "cuộn vào chế độ xem" qua scrollIntoView[]
tài xế. exec_script["đối số[0]. scrollIntoView[];", phần tử]

Làm cách nào để cuộn xuống và chọn trong Selenium?

Cách cuộn đến phần tử trong Selenium .
Bước 1. Chuẩn bị trang web để kiểm tra. Không phải tất cả các trang đều có thể cuộn được. .
Bước 2. Tải trang bằng WebDriver. Bây giờ chúng ta có một trang để kiểm tra việc cuộn, hãy tải trang bằng Selenium WebDriver. .
Bước 3. Xác định vị trí phần tử mục tiêu. .
Bước 4. Di chuyển đến phần tử mục tiêu. .
Bước 5. Chạy thử nghiệm

Làm cách nào để cuộn lên và cuộn xuống trong Selenium?

Hiển thị hoạt động trên bài đăng này. .
1. Để cuộn trang xuống dưới cùng, hãy sử dụng cửa sổ. scrollTo[0,tài liệu. cơ thể người. scrollHeight] làm tham số. .
2. Để cuộn trang lên trên cùng, hãy sử dụng cửa sổ. scrollTo[0,tài liệu. cơ thể người. scrollTop] làm tham số. .
3. Để cuộn trang sang trái, sử dụng cửa sổ. scrollTo[0,tài liệu. cơ thể người. scrollLeft] làm tham số

Chủ Đề