问题

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

selenuim不能使用find_element_by_link_text、find_element_by_partial_link_text定位的场景_测试经验

selenuim不能使用find_element_by_link_text、find_element_by_partial_link_text定位的场景_相对定位_02

分析

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

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

selenuim不能使用find_element_by_link_text、find_element_by_partial_link_text定位的场景_测试经验_03

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

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

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

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

selenuim不能使用find_element_by_link_text、find_element_by_partial_link_text定位的场景_测试经验_05

定位表达式:.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()

使用此方法定位成功。

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