0


Python Selenium选择动态下拉框值并进行动态定位的方法

场景描述

现在要在模拟在输入框中输入会员名称,再点击加载出来的下拉框内容

遇到的问题

1、鼠标移开下拉框后,元素消失,如何选择下拉框内容

2、获取下拉框元素Xpath路径后,发现是一个动态的xpath,每次获取到的xpath值不同,如何定位

解决方法

问题1的解方法:

打开f12,切换到source标签,输入框输入将下拉框显示出来,立即点击||暂停按钮,通过源码暂停获取定位机会。

再点击元素选取,点击元素,即可定位,右击标签copy-Xpath,即可获取原生xpath。

本例中为/html/body/div[6]/ul/li/strong

问题2的解决方法:

将原生的Xpath写在代码调试过程中,发现当在页面输入相同内容,再选择下拉框内容后,下拉框的xpath变化了,每操作一次,下拉框的xpath都不一样

例如:

/html/body/div[6]/ul/li/strong

/html/body/div[12]/ul/li/strong

/html/body/div[13]/ul/li/strong

div的序号都不一样。

这就是遇到动态Xpath了,会导致元素定位失败,有时候找不到元素。

此时就要改为手动编写Xpath。

输入内容后,我要找标签中文本值等于“yunduan”的选项,

编写的xPath为 **//strong[text()='yunduan']**,不管筛选出多少记录(不管取消再输入操作多少次),任意选一个点击都可以。

代码对比

#原代码

# 输入会员名称
driver.find_element(By.XPATH,'/html/body/div[2]/form/table[1]/tbody/tr[6]/td[2]/input[1]').send_keys("yunduan")
#选择下拉框内容
driver.find_element(By.XPATH,'/html/body/div[6]/ul/li/strong').click()

#修改后

# 输入会员名称
driver.find_element(By.XPATH,'/html/body/div[2]/form/table[1]/tbody/tr[6]/td[2]/input[1]').send_keys("yunduan")
#选择下拉框内容
driver.find_element(By.XPATH,'//strong[text()="yunduan"]').click()

总结:

元素定位不到,可能是遇到了动态xpath,改为手写xpath


本文转载自: https://blog.csdn.net/yekongtk/article/details/137780102
版权归原作者 夹喵喵的小螃蟹 所有, 如有侵权,请联系我们删除。

“Python Selenium选择动态下拉框值并进行动态定位的方法”的评论:

还没有评论