我需要能够上下滚动才能找到与Selenium相关的元素。 我已经看到很多问题和答案,发现的主要思想是self.web_driver.execute_script("return arguments[0].scrollIntoView(true);", element),这就是我当前在代码中所拥有的。但这还不够好,因为此代码仅向下滚动,因此如果该元素位于可滚动视图的上部,则无法找到该元素。 因此,我需要一个先向上滚动(向上翻页?),然后开始向下滚动的脚本。 我尝试过这样的事情
self.web_driver.execute_script("return arguments[0].scrollIntoView(true);", element)
self.web_driver.execute_script("return arguments[0].scrollIntoView(true);", element) self.web_driver.execute_script("window.scrollTo(0, -document.body.scrollHeight);") self.web_driver.execute_script("return arguments[0].scrollIntoView(true);", element)
但这不会向上滚动:(
您可以尝试以下代码向上滚动页面:
from selenium.webdriver.common.keys import Keys self.web_driver.find_element_by_tag_name('body').send_keys(Keys.HOME)
您可以向上滚动到所需元素的另一种方式(首选):
element = self.web_driver.find_element_by_xpath('SOME_XPATH') # you can use ANY way to locate element coordinates = element.location_once_scrolled_into_view # returns dict of X, Y coordinates self.web_driver.execute_script('window.scrollTo({}, {});'.format(coordinates['x'], coordinates['y']))