Chúng tôi có thể 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 org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; import org.openqa.selenium.JavascriptExecutor; public class ScrollToViewJs{ public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); String url = "//www.tutorialspoint.com/index.htm"; driver.get(url); driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS); // identify element WebElement l=driver.findElement(By.xpath("//*[text()='ABOUT US']")); // Javascript executor ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", l); Thread.sleep(800); driver.quit(); } }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ử
Đô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.closeTrong 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ử
Tôi vẫn đang tìm hiểu và để trả lời một trong những câu hỏi của mình, nơi tôi được cho biết rằng có thể là do yếu tố được đề cập không có trong chế độ xem
Tôi đã xem qua tài liệu và SO, đây là câu trả lời phù hợp nhất. của cô
Bạn có thể sử dụng "tổ chức. openqa. selen. tương tác. Actions" để di chuyển đến một phần tử
Phần tử WebElement = trình điều khiển. findElement(By. id("my-id"));
Hành động hành động = hành động mới (trình điều khiển);
hành động. moveToElement(phần tử);
## hành động. nhấp chuột();
hành động. trình diễn();
Khi tôi cố gắng sử dụng phần trên để cuộn đến phần tử. Nó nói WebElement không được xác định
Tôi nghĩ điều này là do tôi chưa nhập mô-đun có liên quan. Ai đó có thể chỉ ra những gì tôi phải nhập?
Nhưng trong khi chờ đợi ngay sau khi cố gắng tìm ra nó một thời gian. Tôi đã tìm ra phương thức nhập cho WebElement
Bạn có thể làm điều đó bằng mã, mẹo là chèn mã Javascript để trở thành trang web. Sau khi bạn tải một trang web, hãy cuộn xuống trang bằng cách chèn javascript. Bạn có thể cuộn xuống một số lượng cụ thể hoặc kéo xuống dưới cùng
khóa học liên quan
- Khóa học & ví dụ về tự động hóa web Selenium
Cuộn xuống trang web
Thí dụ
Trước khi bạn bắt đầu, hãy đảm bảo rằng Trình điều khiển Web Selenium đã được cài đặt và bạn đã cài đặt mô-đun Selenium. Trình điều khiển web phải là trình điều khiển web phù hợp với trình duyệt (cùng phiên bản). Đối với Firefox đó là geckoDriver, đối với Chrome đó là ChromeDriver. Phiên bản trình điều khiển phải dành cho phiên bản trình duyệt, phiên bản lỗi thời rất có thể sẽ không hoạt động
Mã cuộn xuống selen được hiển thị bên dưới. Nó gọi phương thức #_*_coding: utf-8_*_
from selenium import webdriver
import time
browser=webdriver.Firefox()
browser.get("//en.wikipedia.org")
browser.execute_script("window.scrollTo(0,document.body.scrollHeight)")
time.sleep(3)
browser.close()
0 bằng javascript để cuộn đến cuối trang web
2
3
4
5
6
7
8
9
10
#_*_coding: utf-8_*_
from selenium import webdriver
import time
browser=webdriver.Firefox()
browser.get("//en.wikipedia.org")
browser.execute_script("window.scrollTo(0,document.body.scrollHeight)")
time.sleep(3)
browser.close()
Đầu tiên các mô-đun cần thiết được tải. Bạn sẽ cần mô-đun selen và mô-đun thời gian
12
3
#_*_coding: utf-8_*_
from selenium import webdriver
import time
Sau đó khởi tạo trình duyệt web. Đây có thể là Firefox hoặc một trình duyệt được hỗ trợ khác (Chrome, Edge, Safari)