selenuim不能使用find_element_by_link_text、find_element_by_partial_link_text定位的场景

问题

如下图所示,直接使用driver.find_element_by_link_text、find_element_by_partial_link_text无法定位
image

image

分析

按之前的测试经验,考虑到可能得使用相对定位

首先找到定位元素的父元素
image

image

需要定位的元素是第二个子元素

使用相对定位的方法,在此使用css定位

在控制台确定定位表达式可以使用
image

定位表达式:.ivu-menu>.ivu-menu-submenu:nth-child(2)
.ivu-menu 为父元素class属性
.ivu-menu-submenu 为子元素class属性
nth-child(2) 表示定位第2个元素,因为有多个class属性为ivu-menu-submenu的元素

# .ivu-menu>.ivu-menu-submenu:nth-child(2)
driver.find_element_by_css_selector('.ivu-menu>.ivu-menu-submenu:nth-child(2)').click()

使用此方法定位成功。
image

posted @ 2023-01-13 15:24  捷后愚生  阅读(363)  评论(0编辑  收藏  举报