Cuộn lên trong Selenium Python

Selenium là một công cụ mạnh mẽ để kiểm soát trình duyệt web thông qua các chương trình và thực hiện tự động hóa trình duyệt. Nó có chức năng cho tất cả các trình duyệt, hoạt động trên tất cả các hệ điều hành chính và các tập lệnh của nó được viết bằng nhiều ngôn ngữ khác nhau. e Python, Java, C#, v.v., chúng tôi sẽ làm việc với Python

Thanh cuộn giúp bạn di chuyển màn hình tròn theo hướng dọc nếu cuộn trang web hiện đại không còn là vị trí nhìn thấy của màn hình. Nó được sử dụng để vận chuyển cửa sổ lên và xuống. Selenium Webdriver hiện không còn yêu cầu cuộn để thực hiện các bước di chuyển vì nó thao tác DOM. Nhưng trong các trang web tích cực, các yếu tố xuất hiện tốt nhất ngay khi người đó cuộn đến chúng. Trong những trường hợp như vậy, cuộn có thể cần thiết

Đôi khi chúng ta cần thực hiện hành động trên một phần tử không có trong khu vực có thể xem được của trang. Chúng ta cần cuộn xuống trang để đến phần tử đó

Selenium không thể thực hiện hành động cuộn trực tiếp. Điều này có thể đạt được với sự trợ giúp của lớp Javascript Executor và Actions trong Selenium. DOM có thể hoạt động trên tất cả các phần tử trên trang web với sự trợ giúp của Javascript

Selenium có thể thực thi các lệnh trong Javascript với sự trợ giúp của phương thức exec_script[]. Đối với giải pháp Javascript, chúng tôi phải chuyển giá trị thực cho phương thức scrollIntoView[] để xác định đối tượng bên dưới vị trí hiện tại của chúng tôi trên trang. Chúng ta có thể thực hiện chuyển động của chuột với sự trợ giúp của lớp Actions trong Selenium

Thí dụ

Triển khai mã với Javascript Executor

import time
from selenium import webdriver
driver = webdriver.Chrome [executable_path="C:\chromedriver.exe"]
driver.get["//www.tutorialspoint.com/index.htm"]
# identify element
l= driver.find_element_by_xpath["//*[text[]='About Us']"]
# Javascript Executor
driver.execute_script["arguments[0].scrollIntoView[true];", l]
time.sleep[0.4]
driver.close

Trong khi làm việc với lớp Actions để scroll xem ta phải sử dụng phương thức moveToElement[]. Phương pháp này sẽ thực hiện di chuyển chuột cho đến giữa phần tử

Nếu chúng tôi muốn chuyển xuống một trang hoặc muốn tìm kiếm thứ gì đó trên một trang không được xem, chúng tôi sử dụng thao tác cuộn để đến đó. Có thể tự động cuộn trang bằng Selenium không? . Nhưng chúng ta có thể đạt được điều đó với một số tính năng javascript bổ sung được bật trong Python bằng cách sử dụng đối tượng trình điều khiển. Trong selen, có thể cuộn xuống trang theo ba cách khác nhau. Hôm nay chúng ta sẽ cố gắng tìm hiểu về cả ba tùy chọn có thể

Thiết lập môi trường

Vì tôi có niềm đam mê du lịch, tôi thích đọc blog du lịch. Hôm nay chúng ta sẽ thử cuộn trang web có tên “50 điểm du lịch được ghé thăm nhiều nhất trên thế giới”

Vì vậy, chúng ta hãy bắt đầu quá trình. Trước tiên, chúng ta cần nhập WebDriver từ selen và sau đó tạo một đối tượng trình điều khiển từ nó. Tiếp theo, chúng tôi cần chỉ định đường dẫn của ChromeDriver vì chúng tôi sẽ sử dụng trình duyệt chrome để cuộn trang. Phương pháp maximize_window[] có sẵn để có cái nhìn tốt hơn. Sau đó, chúng tôi sẽ cố gắng kết nối với trang web bằng phương pháp driver.get[]. Chúng tôi sẽ sử dụng đợi ngầm định trong 10 giây. Chính sách cookie sẽ xuất hiện ở cuối trang khi chúng tôi kết nối. Chúng ta cần tìm WebElement của nút “OK, got it” để chấp nhận và sau đó nhấp vào nút đó

from selenium import webdriver
driver = webdriver.Chrome[executable_path = r'G:/chromedriver_win32/chromedriver.exe']
driver.maximize_window[]
driver.get['//www.lovehomeswap.com/blog/latest-news/the-50-most-visited-tourist-attractions-in-the-world']
driver.implicitly_wait[10]
cookie = driver.find_element_by_link_text['OK, got it']
cookie.click[]

Cuộn xuống trang theo pixel

Có thể cuộn một trang với số pixel. Có một phương thức tên là

driver.execute_script["window.scrollBy[0,500]",""]
0 cho phép chúng ta cuộn một trang. Lệnh đi như thế này

driver.execute_script["window.scrollBy[0,500]",""]

Ở đây chúng ta cần nhập hai tham số trong phương thức

driver.execute_script["window.scrollBy[0,500]",""]
1. 0 là vị trí pixel bắt đầu hoặc pixel mặc định và 500 là vị trí pixel chúng tôi muốn cuộn đến. Bằng cách thay đổi các giá trị này, có thể cuộn xuống từ nơi này sang nơi khác. Tham số thứ hai của phương thức
driver.execute_script["window.scrollBy[0,500]",""]
0 sẽ vẫn trống. Hãy thử làm điều đó trên trang web

driver.execute_script["window.scrollBy[0,3000]",""]

Vì chúng ta đã đặt tham số thứ 2 của phương thức

driver.execute_script["window.scrollBy[0,500]",""]
1 từ 500 thành 3000, chúng ta có thể thấy thanh cuộn ở phía bên tay phải không ở vị trí mặc định của nó. Nó đã cuộn xuống một chút ở vị trí 3000 pixel. Bằng cách thay đổi tham số thứ hai, chúng tôi có thể truy cập các địa điểm nhất định trên một trang với sự trợ giúp của phương pháp này

Cuộn xuống trang cho đến khi phần tử được tìm thấy

Bây giờ chúng tôi muốn tìm kiếm một phần tử cụ thể trong trang web nhưng chúng tôi không biết vị trí pixel chính xác cho điểm đó. Làm cách nào chúng ta có thể cuộn xuống phần tử cụ thể đó?

________số 8_______

Để làm việc với lệnh này, đầu tiên chúng ta cần xác định phần tử muốn xem, sau đó chúng ta sẽ lưu nó vào một biến. Một lần nữa, chúng ta sẽ sử dụng phương thức

driver.execute_script["window.scrollBy[0,500]",""]
0 và nó cũng sẽ nhận hai tham số. Chúng tôi sẽ nhập “
driver.execute_script["window.scrollBy[0,500]",""]
5” làm tham số đầu tiên và biến chứa phần tử được xác định làm tham số thứ hai. Hy vọng rằng thanh cuộn sẽ tự động di chuyển đến nơi đặt phần tử

Hãy thử tìm phần tử

driver.execute_script["window.scrollBy[0,500]",""]
6 từ trang web. Chúng tôi muốn đặt cuộn của bạn để tự động xem phần tử này. Mã sau sẽ đủ tốt

niagara_falls = driver.find_element_by_link_text['Niagara Falls']
driver.execute_script["arguments[0].scrollIntoView[];",niagara_falls]

Ở đây, chúng tôi đã cố gắng tìm phần tử bằng văn bản liên kết và tạo một biến

driver.execute_script["window.scrollBy[0,500]",""]
7 với vị trí là
driver.execute_script["window.scrollBy[0,500]",""]
8. Ở dòng tiếp theo, chúng ta thực hiện lệnh với phương thức
driver.execute_script["window.scrollBy[0,500]",""]
9

Thác Niagara xuất hiện ở đầu trang. đôi khi nó có thể không hiển thị do thanh “Đăng nhập”. Sau đó, bạn cần cuộn lên một chút để xem

Cuộn xuống cho đến cuối trang

Cũng có thể sử dụng phương pháp

driver.execute_script["window.scrollBy[0,3000]",""]
0 để cuộn xuống cuối bất kỳ trang nào. lệnh sẽ trông như thế này

driver.execute_script["window.scrollBy[0,document.body.scrollHeight]"]

Ở đây một lần nữa, chúng ta sẽ sử dụng câu lệnh javascript bên trong phương thức

driver.execute_script["window.scrollBy[0,500]",""]
0. Phương thức
driver.execute_script["window.scrollBy[0,500]",""]
1 sẽ nhận hai tham số. Cái đầu tiên là 0 làm điểm bắt đầu ban đầu và cái thứ hai phải được javascript định nghĩa là “
driver.execute_script["window.scrollBy[0,3000]",""]
3” vì nó giúp người cuộn đến điểm kết thúc của trang. Nếu chúng tôi chạy mã, chúng tôi sẽ thấy trang như thế này

Chúng ta có thể thấy từ phía bên tay phải rằng thanh cuộn đã đi đến điểm kết thúc của trang

Vì vậy, đó là tất cả về các phương pháp chúng ta sử dụng ngày nay trong Selenium python để tự động cuộn xuống trình duyệt. Tôi hy vọng bạn sẽ thấy hữu ích khi tìm hiểu thêm về Selenium

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 lên đầu trang web bằng Selenium Python?

Chúng ta có thể cuộn xuống cuối hoặc đầu trang bằng cách trước tiên xác định thành phần html trên trang web, sau đó sử dụng hàm send_keys[] và chỉ định Keys làm tham số. END, để cuộn xuống cuối trang hoặc tham số, Phím. HOME , để cuộn lên đầu trang.

Làm cách nào để cuộn đến phần tử Selenium Python?

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 danh sách trong Selenium 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 đến giữa trang trong Selenium Python?

Selenium có thể thực thi các lệnh JavaScript với sự trợ giúp của phương thức execScript. Để cuộn đến giữa màn hình, trước tiên chúng ta phải xác định thành phần mà chúng ta muốn cuộn đến trên trang. Sau đó chuyển scrollIntoView và phần tử web làm tham số cho phương thức execScript .

Chủ Đề