📅  最后修改于: 2023-12-03 14:47:22.596000             🧑  作者: Mango
在使用 Selenium 进行 Web 自动化测试时,经常需要选择页面中的某个元素进行动作或定位其他元素。但有时元素的定位过于复杂或嵌套层数过多,直接选择子元素可能会导致选择不准确。这时我们可以使用 Selenium 中的父元素来更准确地选择目标元素。
在介绍选择父元素之前,我们先来回顾一下选择子元素的方法,即使用各种定位方法定位到目标元素。
例如,我们可以使用 XPath 来选择元素:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://example.com')
element = browser.find_element_by_xpath('//div[@class="example"]/p')
还可以使用 CSS Selector 来选择元素:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://example.com')
element = browser.find_element_by_css_selector('div.example p')
如果我们选择父元素,则可以更准确地定位到目标元素。
在 WebDriver 中选择父元素有两种方法:
parent
属性来寻找父元素在 XPath 中,可以使用 ..
来选择当前元素的父元素。例如,要选择 p
元素的父元素 div
,可以这样写:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://example.com')
parent_element = browser.find_element_by_xpath('//div[@class="example"]/p/..')
parent
属性来寻找父元素在选择完子元素后,我们还可以通过 parent
属性来获取其父元素。例如,要选择 p
元素的父元素 div
,可以这样写:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://example.com')
element = browser.find_element_by_css_selector('div.example p')
parent_element = element.parent
两种方法都能选择到父元素,选择哪种方法取决于具体情况。
使用父元素可以更准确地定位到目标元素,从而避免选择错误或者选择了多余元素。我们可以使用 XPath 或 parent
属性来选择父元素,具体选择哪种方法需要根据具体情况而定。