- 现象
跑case的时候明显看到定位到元素了,也点击了,但是就是不生效
有两种解决方案
【一】键盘输入enter
from selenium.webdriver.common.keys import Keys
driver.find_elements_by_xpath("//button[@type='submit']")[0].send_keys(Keys.ENTER)
【二】execute_script 执行js第一种方式
# execute_script 执行js, 简单粗暴
js = 'var q = document.getElementsByClassName("line").children[3].click()'
driver.execute_script(js)
但是发现好像还是不大行,报错:
selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read property '3' of undefined
【三】execute_script 执行js第二种方式
element = driver.find_element_by_xpath("//button[@type='submit']")
driver.execute_script("arguments[0].click();", element)
完美解决,arguments 不能写成argument,需要注意
- 其他
简单来说,即使用js代码来触发点击操作:
driver.excute_script('document.getElementById(" ").click()')
driver.excute_script('document.getElementsByClassName(" ")[$n].click()')
#注意该方法找到的元素是列表类型
driver.excute_script('document.getElementsByTagName(" ")[$n].click()')
#注意该方法找到的元素是列表类型
网友评论