首页 > 其他分享 > click() 方法无法生效时 使用ActionChains

click() 方法无法生效时 使用ActionChains

时间:2023-10-08 17:26:30浏览次数:39  
标签:webdriver ActionChains driver 点击 生效 import click

背景知识1

ActionChains库 它的缩写来自于以下单词:Action(动作)和Chains(链)

背景知识2

ActionChains 提供了更多灵活的鼠标和键盘操作选项,可以用于处理更复杂的场景,如果 click() 方法无法生效,
可以尝试使用 ActionChains 来模拟点击事件。
在使用Selenium时,存在一种情况是 click() 方法可能无法成功触发元素的点击事件,
但 ActionChains 仍然可以正常工作。这可能是由于以下原因之一: 元素位置被覆盖:可能有其他元素位于目标元素上方,导致点击事件无法触发。
您可以尝试使用 ActionChains 来模拟鼠标操作,通过 move_to_element() 方法将鼠标悬停在目标元素上,
然后使用 click() 方法触发点击事件。 元素可点击性被禁用:目标元素可能被设置为不可点击,例如通过CSS属性 pointer-events: none 或 JavaScript disabled 属性。
在这种情况下,click() 方法将无法触发点击事件。使用 ActionChains 可以通过模拟鼠标点击来绕过这个限制。

 

 

 

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import Keys
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains
# 实例化驱动对象
driver=webdriver.Chrome()
driver.maximize_window()

def open_brower(url,loc):

    # 打开网址
    driver.get(url)
    sleep(3)
    # 模拟鼠标动作
    action = ActionChains(driver)
    print("页面已经展示,开始点击")
    # 定位元素
    ele = driver.find_element(By.CSS_SELECTOR, loc)

    action.move_to_element(ele).click().perform()
    sleep(3)
    print("弹出选择照片框了吗")

    # 退出
    driver.quit()

if __name__ == '__main__':
    u="http://sahitest.com/demo/php/fileUpload.htm"
    l='#file'
    open_brower(u,l)

 

标签:webdriver,ActionChains,driver,点击,生效,import,click
From: https://www.cnblogs.com/haha1988/p/17749650.html

相关文章

  • 【Mybatis】开启驼峰命名不生效
    数据库里经常用_命名变量,例如:user_name。而Java实体类经常用驼峰命名,例如userName。如果想要让mybatis自动开启下划线到驼峰命名映射,需要在application配置文件来配置:mybatis.configuration.map-underscore-to-camel-case=true发现没有生效,没有成功映射到数据对象中,都是nu......
  • ClickHouse选择正确的join算法
    支持的JOIN类型 JOIN算法概览clickhouse提供了6种JOIN算法:1.直接连接(Directjoin)2.哈希连接(Hashjoin)3.并行哈希连接(Parallelhashjoin)4.优雅哈希连接(Gracehashjoin)5.全排序合并连接(Fullsortingmergejoin)6.部分合并连接(Partialmergejoin) 这......
  • sv的LSB 使用+SV的protect类型+RAL模型的lock原因+C语言结构体中的冒号用法+uvm版本在
    sv的LSB使用https://blog.csdn.net/gsjthxy/article/details/90722378等价关系[LSB+:STEP]=[LSB+STEP:LSB]伪代码:bit[1023:0]mem;bit[7:0]data;j=0..100mem[j*8+:8]=data;//[7:0],[15:8],[23:16]SV的protect类型https://blog.csdn.net/qq_37573794/ar......
  • 关于Servlet和Filter设置响应头生效问题
    一开始我一直觉得无论Servlet中设置的什么响应头,生效的都是Filter中设置的。因为响应回到客户端前也会经过Filter之后测试发现响应经过过滤器时不是重新执行一遍过滤器中的代码,而是执行doFilter()方法之后的代码Filter: Servlet: 运行结果: 在前端也发现响应回来的编码......
  • 火山引擎 ByteHouse:如何提升 18000 节点的 ClickHouse 可用性?
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群ClickHouse是业内被广泛使用的OLAP引擎。当集群规模过大时,ClickHouse则面临使用局限性的问题。如何提升ClickHouse的可用性,成为困扰广大开发者的难题之一。目前,字节跳动内部的ClickHouse......
  • 火山引擎 ByteHouse:如何提升 18000 节点的 ClickHouse 可用性?
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 ClickHouse是业内被广泛使用的OLAP引擎。当集群规模过大时,ClickHouse则面临使用局限性的问题。如何提升ClickHouse的可用性,成为困扰广大开发者的难题之一。 目前,字节跳动内部的Cl......
  • clickhouse 踩过的坑
    【1】clickhouseleftjoin时where条件判空无效DROPTABLEifexiststablename1;createtabletablename1engine=MergeTreeorderbycolumn1asselectt.*fromtablename2tleftjointablename3t1ont.column1=t1.column1wheret1.columnisnull;默认管理时右......
  • clickhouse导入导出数据
    参考:https://blog.csdn.net/sinat_24985411/article/details/1280828381、clickhouse导入数据#导入带表头的txt文件(转,未验证)xxx@xxx:/home/xxx>clickhouse-client-h【hostIP】-u【username】--password【password】-d【database】-q"insertintoTABLENAMEFORMATC......
  • clickhouse linux 客户端安装和使用
    clickhouselinux客户端安装步骤1:上传安装文件到服务器目录(可以使用正常用户上传)2:使用root用户安装,否则会提示权限不够报错,此外非X86架构服务器也可能会报错(如linuxone服务器报错:packageclickhouse-common-static-0:23.3.6.7-1.x86_64isintendedforadifferentarchitect......
  • 报错 无法设置未定义或 null 引用的属性“onclick”
    https://blog.csdn.net/HenryXun/article/details/121422936今天写js,报错如下:无法设置未定义或null引用的属性“onclick”究其原因是因为  script的代码段放错位置,应该放在</body>标签之前.在此,对<script>放置位置进行说明:一般<script>标签会放在<head>标签中,但是放在<......