问题
在使用selenium模拟操作时经常遇到一些使用原始方法解决不了的问题。
click失效问题,能定位到但是无法点击,网上针对这种的有很多例子,不同的环境 不同的分析
1.在执行click之前代码多休眠几秒,确保要操作的元素刷新完毕
2.尝试下拉一段滚动条到要操作的元素位置,让按钮能看到
详情链接:
python+selenium之浏览器滚动条操作
3.用Enter键代替click
driver.find_element_by_id("su").send_keys(Keys.ENTER)
4.就祭出我们的execute_script 执行js, 简单粗暴
js='document.getElementById("su").click();'
driver.execute_script(js)
5.给一个简单的代码来演示一下
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
url = "https://www.baidu.com"
driver.get(url=url)
import time
time.sleep(3)
'''
# 一 键盘点击
driver.find_element_by_id("kw").send_keys("csdn")
time.sleep(3)
driver.find_element_by_id("su").send_keys(Keys.ENTER)
'''
# 第二种 就祭出我们的execute_script 执行js, 简单粗暴
'''
1.driver.find_element_by_id("kw").send_keys("csdn")
2.js='document.getElementById("kw").value="'+val+'";'
3.js='document.getElementById("kw").value="csdn";'
这3中给输入框填内容的方法都是可以的,但如果输入框元素无法操作的时候直接使用js操作,简单粗暴,2是把值单独拿出来做一个拼接,更加的符合实际使用场景
'''
val='csdn'
js='document.getElementById("kw").value="'+val+'";'
#js='document.getElementById("kw").value="csdn";'
driver.execute_script(js)
js='document.getElementById("su").click();'
driver.execute_script(js)