python用selenium网页模拟时xpath无法定位元素解决方法3

有时我们在使用python selenium xpath时,无法定位元素,红字显示no such element。上两篇文章分别写了2种情况,1种是包含iframe的,详见https://blog.csdn.net/Sixth5/article/details/140342929。1种是有动态数字变化的,详见https://blog.csdn.net/Sixth5/article/details/140344343。

本篇写第3种情况,也是终极解决方法!针对一下特别棘手的,没法用定位的情况,我们直接放弃用selenium模块,直接使用鼠标模拟模块,控制鼠标位置和点击,来实现特定页面的点击按钮。需要用到的模块是pynput,具体代码如下,

import pynput
from pynput import mouse
from pynput.keyboard import Controller
control = mouse.Controller()
control.scroll(0, -10000) #向下滚动
control.scroll(0, 10000) #向上滚动
control.position = (100, 100) #鼠标闪烁到位置
control.move(10, 10) #鼠标移动到位置
print(control.position)#打印鼠标当前位置坐标
mouse.Button.left #左键
mouse.Button.right #右键
mouse.Button.middle #中键
control.click(mouse.Button.left, 1) #左键单击
control.click(mouse.Button.left, 2) #左键双击

所以一般的话,先用control.position,打印出按钮所在的鼠标位置,知道坐标后,就可以用control.move加control.click(mouse.Button.left, 1)来点击按钮了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python Selenium是一个用于自动化Web浏览器的工具,它可以模拟用户在浏览器中的操作,例如点击、输入文本、获取元素等。Selenium 4.20.0是Selenium的一个版本,用于定位元素。 在Selenium中,元素定位是指通过一些特定的属性或者路径来找到网页中的元素。常用的元素定位方法有以下几种: 1. 通过ID定位:使用`find_element_by_id`方法,传入元素的ID属性值来定位元素。示例代码如下: ```python element = driver.find_element_by_id("element_id") ``` 2. 通过名称定位:使用`find_element_by_name`方法,传入元素的name属性值来定位元素。示例代码如下: ```python element = driver.find_element_by_name("element_name") ``` 3. 通过类名定位:使用`find_element_by_class_name`方法,传入元素的class属性值来定位元素。示例代码如下: ```python element = driver.find_element_by_class_name("element_class") ``` 4. 通过标签名定位:使用`find_element_by_tag_name`方法,传入元素的标签名来定位元素。示例代码如下: ```python element = driver.find_element_by_tag_name("tag_name") ``` 5. 通过链接文本定位:使用`find_element_by_link_text`方法,传入链接文本来定位链接元素。示例代码如下: ```python element = driver.find_element_by_link_text("link_text") ``` 6. 通过CSS选择器定位:使用`find_element_by_css_selector`方法,传入CSS选择器来定位元素。示例代码如下: ```python element = driver.find_element_by_css_selector("css_selector") ``` 7. 通过XPath定位:使用`find_element_by_xpath`方法,传入XPath表达式来定位元素。示例代码如下: ```python element = driver.find_element_by_xpath("xpath_expression") ``` 以上是一些常用的元素定位方法,你可以根据具体的需求选择合适的方法定位元素

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

'Steven

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

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

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

打赏作者

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

抵扣说明:

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

余额充值