python自动化:悬浮窗内的按钮定位不到怎么办?别慌,一个方法轻松解决

使用selenium做网页自动化,经常会遇到各种各样定位不到数据问题。今天根据亲身经历介绍2个定位不到元素问题的解决方法

1. 悬浮窗内按钮

 

鼠标移动到悬浮窗部分才能够显示操作按钮,这种控件直接找必然是找不到的

解决方法:

1. 增加一步鼠标操作:将鼠标移动到所需要定位元素的位置,悬停之后,再找元素

关键词:ActionChains,鼠标操作对应的方法集合,详细内容可以在selenium介绍文档中找~

推荐博文:https://blog.csdn.net/weixin_36279318/article/details/79475388    【转载】

from selenium.webdriver import ActionChains
test = driver.find_element_by_id('GGGG') # 控件所在元素位置
ActionChains(driver).move_to_element(test).perform() # 将鼠标移动待元素上

并且在测试的过程中,鼠标放一边别乱动了~~乱动了就可能定位不到了~

 

2. 动态弹窗

这种并不是iframe格式,打开开发工具可以看到,他的代码在整个h5中的最下方,好理解就叫他动态弹窗。动态的内容,使用Xpath的方式获取就不太明智了,需要修改使用class、ID等固定内容获取,精确性更好。

但是class和ID就可能存在相似的情况。所以需要查看到底有多个“同名”元素,然后看使用的是哪一个。

Choose_Operates = driver.find_elements_by_class_name('el-popper') # 定位所有同名元素
Operates = Choose_Operates[-1].find_elements_by_tag_name('li') # 使用需要的元素进行后续操作
Operates[2].click()

总结:

定位元素慢慢来,找不到也不奇怪。iframe和弹窗,定位之前先跳转。

动态元素用id/class,不变元素用Xpath。鼠标操作灵活用,实在找不到就用try。

 

都看到和了,不点赞评论,不觉得对不起自己么?                                

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章