target = driver.find_element_by_id("id_keypair");
driver.execute_script("arguments[0].scrollIntoView();", target) #拖动到可见的元素去
这个方法可以模拟鼠标滚动到需要显示的元素位置,使用场景:浏览器窗口小,页面过大内容显示不全,元素可以定位但不可见。
或者
self._current_browser().execute_script("arguments[0].focus();", element)
页面为ajax动态加载
driver = webdriver.Chrome()
read_mores = driver.find_elements_by_xpath('//a[text()="加载更多"]')
for read_more in read_mores:
driver.execute_script("arguments[0].scrollIntoView();", read_more)
driver.execute_script("$(arguments[0]).click();", read_more)
你可以用 execute_script方法来处理这个。 调用原生javascript的API,这样你想滚到哪里就能滚到哪里。下面的代码演示了如何滚到页面的最下面:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# target = driver.find_elements_by_xpath('//div[@class="swiper-slide page3"]')[0]
target= driver.find_element_by_xpath('//div[@class="swiper-slide page3"]')
driver.execute_script("arguments[0].scrollIntoView();", target) # 拖动到可见的元素去
# driver.execute_script("$(arguments[0]).click();", target)
time.sleep(10)
网友评论