运行python时出现报错
Element is not clickable at point (x, x). Other element would receive the click
报错原因:要点击的元素已经加载,但是界面没有显示出来,需要拉滚动条才能显示出来
程序如下:
from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get("https://www.baidu.com/") #拖动到滚动条底部---向下 js = "var q=document.documentElement.scrollTop=10000" driver.execute_script(js) sleep(3) #滚动左右滚动条---向右 js2 = "var q=document.documentElement.scrollLeft=10000" driver.execute_script(js2) sleep(3) #滚动左右滚动条---向左 js3 = "var q=document.documentElement.scrollLeft=0" driver.execute_script(js3) # #控制滚动条逐步滚动 # for y in range(15): # js = "window.scrollBy(0,100)" # driver.execute_script(js) # sleep(1)
以上的这个方法有的时候无效,我觉得可能是因为界面滚动元素太多了
换一种方式
我们可以先让页面直接跳到元素出现的位置,然后就可以操作了。同样需要借助JS去实现。
元素聚焦:
target = driver.find_element_by_xxxx() #界面上想要看到的元素
driver.execute_script("arguments[0].scrollIntoView();", target)
scrollIntoView是一个与页面(容器)滚动相关的API
element.scrollIntoView() 参数默认为true
参数为true:调用该函数,页面发送滚动,使element的顶部与视图(容器)顶部对齐
参数为false:使element的底部与视图(容器)底部对齐