Làm cách nào để cuộn xuống selen bằng python?

Đây là kịch bản phổ biến nhất. Không giống như các phương thức phím bấm và gửi truyền thống, lớp hành động không tự động cuộn phần tử đích vào chế độ xem, vì vậy phương thức này sẽ cần được sử dụng nếu các phần tử chưa có trong chế độ xem

Phương thức này lấy một phần tử web làm đối số duy nhất

Bất kể phần tử ở trên hay dưới màn hình xem hiện tại, chế độ xem sẽ được cuộn để phần dưới cùng của phần tử nằm ở cuối màn hình

        WebElement iframe = driver.findElement[By.tagName["iframe"]];
        new Actions[driver]
                .scrollToElement[iframe]
                .perform[];

    iframe = driver.find_element[By.TAG_NAME, "iframe"]
    ActionChains[driver]\
        .scroll_to_element[iframe]\
        .perform[]

            IWebElement iframe = driver.FindElement[By.TagName["iframe"]];
            new Actions[driver]
                .ScrollToElement[iframe]
                .Perform[];

    iframe = driver.find_element[tag_name: 'iframe']
    driver.action
          .scroll_to[iframe]
          .perform

      const iframe = await driver.findElement[By.css["iframe"]]

      await driver.actions[]
        .scroll[0, 0, 0, 0, iframe]
        .perform[]

        val iframe = driver.findElement[By.tagName["iframe"]]
        Actions[driver]
                .scrollToElement[iframe]
                .perform[]

Đây là kịch bản phổ biến thứ hai để cuộn. Truyền vào một giá trị delta x và một giá trị delta y để biết mức độ cuộn theo hướng phải và xuống. Các giá trị âm tương ứng đại diện cho trái và lên

        WebElement footer = driver.findElement[By.tagName["footer"]];
        int deltaY = footer.getRect[].y;
        new Actions[driver]
                .scrollByAmount[0, deltaY]
                .perform[];

    footer = driver.find_element[By.TAG_NAME, "footer"]
    delta_y = footer.rect['y']
    ActionChains[driver]\
        .scroll_by_amount[0, delta_y]\
        .perform[]

________số 8_______

    footer = driver.find_element[tag_name: 'footer']
    delta_y = footer.rect.y
    driver.action
          .scroll_by[0, delta_y]
          .perform

    iframe = driver.find_element[By.TAG_NAME, "iframe"]
    ActionChains[driver]\
        .scroll_to_element[iframe]\
        .perform[]
0

    iframe = driver.find_element[By.TAG_NAME, "iframe"]
    ActionChains[driver]\
        .scroll_to_element[iframe]\
        .perform[]
1

Kịch bản này thực sự là sự kết hợp của hai phương pháp trên

Để thực hiện điều này, hãy sử dụng phương thức "Cuộn từ", có 3 đối số. Cái đầu tiên đại diện cho điểm gốc mà chúng ta chỉ định là phần tử và hai cái thứ hai là các giá trị delta x và delta y

Nếu phần tử nằm ngoài khung nhìn, nó sẽ được cuộn xuống cuối màn hình, sau đó trang sẽ được cuộn theo các giá trị delta x và delta y được cung cấp

    iframe = driver.find_element[By.TAG_NAME, "iframe"]
    ActionChains[driver]\
        .scroll_to_element[iframe]\
        .perform[]
2

    iframe = driver.find_element[By.TAG_NAME, "iframe"]
    ActionChains[driver]\
        .scroll_to_element[iframe]\
        .perform[]
3

    iframe = driver.find_element[By.TAG_NAME, "iframe"]
    ActionChains[driver]\
        .scroll_to_element[iframe]\
        .perform[]
4

    iframe = driver.find_element[By.TAG_NAME, "iframe"]
    ActionChains[driver]\
        .scroll_to_element[iframe]\
        .perform[]
5

    iframe = driver.find_element[By.TAG_NAME, "iframe"]
    ActionChains[driver]\
        .scroll_to_element[iframe]\
        .perform[]
6

    iframe = driver.find_element[By.TAG_NAME, "iframe"]
    ActionChains[driver]\
        .scroll_to_element[iframe]\
        .perform[]
7

Kịch bản này được sử dụng khi bạn chỉ cần cuộn một phần của màn hình và nó nằm ngoài chế độ xem. Hoặc ở bên trong khung nhìn và phần màn hình phải được cuộn là phần bù đã biết cách xa một phần tử cụ thể

Điều này sử dụng lại phương thức "Cuộn từ" và ngoài việc chỉ định phần tử, một phần bù được chỉ định để chỉ ra điểm gốc của cuộn. Độ lệch được tính từ tâm của phần tử được cung cấp

Nếu phần tử nằm ngoài khung nhìn, trước tiên nó sẽ được cuộn xuống cuối màn hình, sau đó điểm gốc của cuộn sẽ được xác định bằng cách thêm phần bù vào tọa độ tâm của phần tử và cuối cùng trang sẽ được

Lưu ý rằng nếu độ lệch từ góc trên bên trái của chế độ xem nằm ngoài màn hình, nó sẽ dẫn đến một ngoại lệ

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

Selenium chạy các lệnh trong Javascript bằng phương thức exec_script[]. Để cuộn xuống cuối trang, chúng ta phải vượt qua [0, tài liệu. cơ thể. scrollHeight] làm tham số cho phương thức scrollBy[] .

Làm cách nào để thực hiện cuộn lên trong Selenium Python?

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 Javascript Executor và lớp 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[].

Chủ Đề