博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selenium+Python(Js处理click失效)
阅读量:4981 次
发布时间:2019-06-12

本文共 1084 字,大约阅读时间需要 3 分钟。

    有时候元素明明已经找到了,运行也没报错,点击后页面没任何反应。这种问题遇到了,是比较头疼的,因为没任何报错,只是 click 事件失效了。

问题:

1.在练习百度的搜索设置按钮时,点保存设置按钮,alert 弹出没弹出(代码没报错,只是获取 alert 失败)。

点击父元素解决问题

1.遇到这种问题,应该是前面操作 select后导致的后遗症(因为我注释掉 select那段是可以点击成功的)

2.第一种解决办法,先点击它的父元素一次,然后再点击这个元素

3.实现代码如下

js 直接点击解决问题

1.遇到这种诡异问题,是时候出绝招了:js 大法

2.用 js 直接执行点击事件

完整代码:

# coding:utf-8from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.support.select import Selectimport timedriver = webdriver.Firefox()driver.get("https://www.baidu.com")time.sleep(5)mouse = driver.find_element_by_link_text("设置")ActionChains(driver).move_to_element(mouse).perform()time.sleep(3)driver.find_element_by_link_text("搜索设置").click()time.sleep(3)s = driver.find_element_by_id("nr")Select(s).select_by_visible_text("每页显示50条")# 方法一,先点击父元素#driver.find_element_by_id("gxszButton").click()#driver.find_element_by_class_name("prefpanelgo").click()# 方法二,JS直接点击js = 'document.getElementsByClassName("prefpanelgo")[0].click()'driver.execute_script(js)driver.quit()

  

转载于:https://www.cnblogs.com/101718qiong/p/7987133.html

你可能感兴趣的文章
Python 之ConfigParser模块
查看>>
yaml模块
查看>>
数据库函数
查看>>
免交互批量分发公钥的实现
查看>>
在Python脚本中调用Django环境
查看>>
Django Rest Framework
查看>>
orm字段类型使用
查看>>
saltstack安装使用
查看>>
centos 下 yum安装python3
查看>>
cmdb资产管理2
查看>>
Python 命令行工具 argparse 模块使用详解
查看>>
jQuery和使用oninput事件
查看>>
es学习
查看>>
anaconda使用
查看>>
python中分页使用
查看>>
爬虫学习推荐目录
查看>>
[CSS] Change the Alignment of a Single Flexed Item with 'align-self'
查看>>
[Dart] Capture and Handle Data Sequences with Streams in Dart
查看>>
[Dart] splitMapJoin
查看>>
[Angular] Show a Loading Indicator for Lazy Routes in Angular
查看>>