有没有办法使用Python Selenium上下滚动到网页内的特定区域/元素而不是整个网页本身?

问题描述 投票:0回答:1

我目前正在尝试滚动我正在测试的网页中的特定区域,因为我需要单击的“保存”按钮位于底部,除非向下滚动,否则不可见,因此每当我运行脚本时,它都会显示“无法定位元素”。

问题是这个特定区域有一个独特的滚动条,它没有向上/向下按钮,也没有特定的 ID、名称、类、XPATH。整个 XPATH 是我尝试滚动的区域/面板。

我在 PyCharm 上使用 Python Selenium。

我尝试了ActionsChains,例如首先通过move_to_element()将光标悬停在面板上,然后尝试scroll_to_element,但它仍然没有向下滚动并导致无法找到元素。

我也尝试了JavaScript的execute_script(“arguments[0],scrollIntoView(true)”,xpath),但它也没有做任何事情。

我尝试了 send_keys(Keys.END) 但整个页面正在向下滚动,而不是特定区域/面板。

要么是无法定位元素,要么是元素不可交互。

python selenium-webdriver
1个回答
0
投票

我找到了我的询问的解决方案。

XPATH_1 = 'xpath_of_scrollable_panel_inside_webpage'
XPATH_2= context.driver.find_element(By.XPATH, XPATH_1)
context.driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight", XPATH_2)

此脚本将网页内的可滚动面板一直滚动到底部。

© www.soinside.com 2019 - 2024. All rights reserved.