Cuộn xuống trăn selen

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”

Cuộn xuống trăn selen

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

driver.execute_script("window.scrollBy(0,500)","")
0 từ Selenium 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
driver.execute_script("window.scrollBy(0,500)","")
1 vì chúng tôi sẽ sử dụng trình duyệt chrome để cuộn trang. Phương pháp
driver.execute_script("window.scrollBy(0,500)","")
2 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.execute_script("window.scrollBy(0,500)","")
3. 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('https://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)","")

Cuộn xuống trăn selen

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

driver.execute_script("window.scrollBy(0,500)","")
1 từ 500 thành 3000, chúng tôi 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ể đó?

driver.execute_script("arguments[0].scrollIntoView();",Element)

Để 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 tôi 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 chứa 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

driver.execute_script("window.scrollBy(0,500)","")
1

Ở đâ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 có vị trí là
driver.execute_script("window.scrollBy(0,500)","")
8. Trong dòng tiếp theo, chúng tôi đã thực hiện lệnh với phương thức
driver.execute_script("window.scrollBy(0,500)","")
9

Cuộn xuống trăn selen

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,500)","")
6

Ở đâ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

Cuộn xuống trăn selen

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 liên kết này hữu ích để tìm hiểu thêm về Selenium