Cuando el elemento a operar está fuera del área visible de la página, es necesario desplazar el elemento a operar hacia el área visible.
paso:
1. El elemento encontrado primero
element = driver.find_element_by_xxx ("xxx")
2. Arrastre el elemento al área visible y consígalo a través de declaraciones de JavaScript, los siguientes 4 escenarios
1) Mover a la "parte superior" del objeto de elemento para alinearlo con la "parte superior" de la ventana actual:
driver.execute_script ("argumentos [0] .scrollIntoView ();", elemento)
2) Mover a la "parte inferior" del objeto de elemento para alinearlo con la "parte inferior" de la ventana actual:
driver.execute_script ("argumentos [0] .scrollIntoView (falso);", elemento)
3) Ir al final de la página:
driver.execute_script ("window.scrollTo (0, document.body.scrollHeight)")
4) Mover a la parte superior de la página:
driver.execute_script ("window.scrollTo (document.body.scrollHeight, 0)")
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("https://ke.qq.com/")
#找到腾讯课堂,近30天最多人在学板块
element=driver.find_element_by_xpath("//div[@data-name='近30天最多人在学']//h2")
#移动元素element与当前窗口的“底部”对齐:
driver.execute_script("arguments[0].scrollIntoView(false);",element)
#移动元素element与当前窗口的“顶部”对齐:
time.sleep(2)
driver.execute_script("arguments[0].scrollIntoView();",element)
#滚动到页面最底部
time.sleep(2)#一定要等一下
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
#然后滚动到页面最顶部
time.sleep(2)
driver.execute_script("window.scrollTo(document.body.scrollHeight,0)")
3. Reactivar elementos
element.xxx ()