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ử đó Show 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 = "https://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("https://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ử 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ử
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
Cuộn xuống trang webThí 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_*_0 bằng javascript để cuộn đến cuối trang web 1 #_*_coding: utf-8_*_ Đầ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 1 #_*_coding: utf-8_*_ 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) Làm cách nào để sử dụng cuộn vào chế độ xem 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 một phần tử vào chế độ xem 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 |