来源:python中国网 时间:2020-04-01

  Element is not clickable at point,Other element would receive the click。今天点击提交的时候遇到了这个报错,原因是click时候被一个弹出的div给遮住了。原来的提交代码如下:

button = WebDriverWait(driver, 20).until(
            EC.visibility_of_element_located((By.XPATH, '//*[@id="tb_rich_poster"]/div[3]/div[5]/div/button[1]'))
        )
button.click()

  鄙人灵机一动决定用执行js的方式来提交,果然可以避免这个问题,js代码用了两种写法,均测试OK。

  第一种:

button = WebDriverWait(driver, 20).until(
            EC.visibility_of_element_located((By.XPATH, '//*[@id="tb_rich_poster"]/div[3]/div[5]/div/button[1]'))
        )
driver.execute_script("arguments[0].click();", button)

  第二种(通过js操作xpath的方式):

button_js = 'document.querySelector("#tb_rich_poster > div.poster_body.editor_wrapper > div.poster_component.editor_bottom_panel.clearfix > div > button.btn_default.btn_middle.j_submit.poster_submit").click()'
driver.execute_script(button_js)

  js操作xpath直接在谷歌浏览器审查元素那里复制出来即可!如图:(有些浏览器是没有jspath这个选项的)

疑难杂症

Tips:不要怕、多坚持、多动手、付出必有回报。