首页 > 编程语言 >Python错误:selenium自带click方法点击不到元素

Python错误:selenium自带click方法点击不到元素

时间:2023-07-03 13:56:03浏览次数:63  
标签:Python selenium driver click 点击 JS ID

问题描述:

  selenium自带click方法,有的时候不好用,元素定位到了,但是就是点不上。

 

解决办法:

  1. 原因分析:点击不到元素!

  2. 解决办法:

    (1). selenium自带的click()方法:

    from selenium import webdriver
    el = driver.find_element(By.ID,ID) # 找到元素
    el.click() # 执行点击
    缺陷:不稳定

    (2). 鼠标操作:ActionChains(cls.driver).move_to_element(el).click().perform()

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    el = driver.find_element(By.ID,ID) # 找到元素
    ActionChains(driver).move_to_element(el).click().perform()
    鼠标操作的局限于操作依然是模拟页面操作,如果存在元素遮挡无法显示的情况,无法使用

    (3). JS操作:driver.execute_script("arguments[0].click();", el)

    from selenium import webdriver
    el = driver.find_element(By.ID,ID) # 找到元素
    driver.execute_script("arguments[0].click();", el)
    JS直接运行不会存在遮罩的问题,健壮性是最好的。

    补充:JS也有一个问题,使用JS点击,由于没有在页面真正的进行点击操作,触发不了按钮对应的JS脚本,可能导致系统无法按照预期效果运行。

    最大的问题是不会报错,有的时候Xpath写错了,使用JS运行点击不会报错,就是没有效果。

标签:Python,selenium,driver,click,点击,JS,ID
From: https://www.cnblogs.com/zhengxianfa/p/17522575.html

相关文章

  • python 实现 ctrl + 左键 单击刷新网页
    importsysfrompywinauto.applicationimportApplicationimportmouseimportkeyboardimporttimeclassApp(object):def__init__(self,pid):app=Application(backend='uia').connect(process=int(pid))self.win=app.top_w......
  • [oeasy]python0070_动态类型_静态类型_编译_运行_匈牙利命名法
     动态类型_静态类型回忆上次内容 上次了解了帮助文档的生成开头的三引号注释可以生成帮助文档文档可以写成网页 python3本身也有在线的帮助手册 目前的程序提高了可读性   ​ 添加图片注释,不超......
  • [oeasy]python0070_动态类型_静态类型_编译_运行_匈牙利命名法
    动态类型_静态类型回忆上次内容上次了解了帮助文档的生成开头的三引号注释可以生成帮助文档文档可以写成网页python3本身也有在线的帮助手册目前的程序提高了可读性还有什么方法可以让程序更可读么?......
  • 【转】python踩坑(FileNotFoundError: Could not find module '此处省略了一些路径win_
    1、报错(FileNotFoundError:Couldnotfindmodule'此处省略了一些路径\site-packages\scipy\.libs\libbanded5x.GL5FZ7Y77HIKQFNMZKUOMV5GID6YMX2V.gfortran-win_amd64.dll'(oroneofitsdependencies).Tryusingthefullpathwithconstructorsyntax.) 2、分析&a......
  • selenium ui自动化遇到切换窗口,点击高级并继续访问的处理方式
    在python自动化中(ui),遇到了一个需要浏览器切换窗口,点击“高级”-“接受风险并继续”的操作,前期在本地编写代码调试时,没有任何问题。切换环境,放到Linux服务中,使用无头模式去运行代码时,发现切换窗口时,总是找不到页面元素,查看截图发现页面为空白,检查两天无果。场景图片,如下图所示,当......
  • Python黑魔法:探秘生成器和迭代器的神奇力量
    在Python中,生成器和迭代器是实现惰性计算的两种重要工具,它们可以帮助我们更有效地处理数据,特别是在处理大数据集时,可以显著减少内存的使用。接下来,我们将详细介绍这两种工具。一、迭代器迭代器是一种特殊的对象,它可以遍历一个集合中的所有元素。任何实现了__iter__()和__next_......
  • python一题多解:编写函数 change(str1) ,其功能是对参数 str1 进行大小写转换
    #习题6,3.编程题,p95#(2)编写函数change(str1),其功能是对参数str1进行大小写转换,#将大写字母转换成小写字母;#小写字母转换成大写字母;#非英文字符不转换。#类似p54,4.编程题(1),用分支语句实现。defchange1(str1):ret=""foriinrange(len(s......
  • PyCharm Pro 2023 mac|Python编辑开发
    Python是一种很流行的编程语言,主要用于计算机编程。Python程序语言是一个基于对象的脚本语言,在应用程序中,它使用自然语言作为标记,其中自然语言可以被翻译成机器语言。Python脚本具有高效、快速、可扩展性好的特点。通过在计算机上运行的脚本,可以在浏览器中打开各种文件和窗口,就像......
  • python
    第一章:你好Python初始PythonPython的起源19891991Python名字为什么选择Python优雅简单易学开发效率高适用面非常广泛什么是编程语言概念人类和计算机交流的一种专有领域语言工作原理将人类的想法,翻译成计算机可以识别的......
  • Python | datetime库函数的详解
    datetime是Python内置的日期时间处理库,它包含了处理日期、时间、时间间隔等的类和函数。datetime库可以从系统中获得时间,并以用户选择的格式输出。下面是datetime常用的类和函数以及它们的详细解释。datetime类datetime类是date和time两个类的结合体,表示一个具体的......