python+selenium 定位到页面元素,无法点击

问题

在使用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)
 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如玉少年-_-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值