Python3.6 Selenium如何通过父节点定位子input节点(XPath)
如何通过已定位的父元素直接获取子input元素
当然可以!你完全没必要重复写完整XPath或者再次调用find_element_by_xpath来定位子元素,有几种简洁且高效的方式能满足你的需求:
方法一:使用相对XPath定位
既然已经拿到了父元素main_field,你可以用相对路径来查找它下面的input子元素,只需要在XPath前加个.(代表从当前元素开始查找,而非根节点):from selenium.webdriver.common.by import By input_field = main_field.find_element(By.XPATH, './/input')这种方式适合子元素结构稍微复杂,但你想精准匹配的场景。
方法二:通过标签名直接定位
如果这个父div下面只有一个input子元素,用标签名定位是最简洁的方式:from selenium.webdriver.common.by import By input_field = main_field.find_element(By.TAG_NAME, 'input')这种写法比XPath更直观,代码也更短。
需要注意的是:WebElement对象并不支持像字典那样用main_field['input']的方式直接获取子元素,不过上面两种方法已经足够替代,而且代码量很少,完全符合你不想重复调用完整XPath定位函数的需求。
内容的提问来源于stack exchange,提问作者TheReshi
相关产品推荐
相关产品推荐

