在 Web 自动化测试中,可以使用以下方法定位一组元素:
一、使用 CSS 选择器
1. 通过标签名和属性组合:
• 例如,要定位页面上所有的<input>标签且具有class="my-input"属性的元素,可以使用driver.find_elements(By.CSS_SELECTOR, 'input.my-input')。这里By.CSS_SELECTOR表示使用 CSS 选择器定位方式,input.my-input是具体的选择器表达式,表示选择所有标签名为input且具有class属性值为my-input的元素。
2. 通过层级关系:
• 比如要定位<div>下的所有<a>标签元素,可以使用driver.find_elements(By.CSS_SELECTOR, 'div > a')。这里div > a表示选择<div>标签的直接子元素<a>标签。
二、使用 XPath 表达式
1. 使用索引:
• 例如,要定位页面上第二个<input>标签,可以使用driver.find_elements(By.XPATH, '(//input)[2]')。这里//input表示选择所有的<input>标签,[2]表示选择第二个匹配的元素。
2. 通过属性值:
• 比如要定位所有具有class="my-class"属性的<div>标签元素,可以使用driver.find_elements(By.XPATH, '//div[@class="my-class"]')。这里//div表示选择所有的<div>标签,[@class="my-class"]表示选择具有class属性值为my-class的<div>标签。
3. 通过文本内容:
• 假设要定位包含文本“提交”的按钮元素,可以使用driver.find_elements(By.XPATH, '//button[contains(text(),"提交")]')。这里//button表示选择所有的<button>标签,[contains(text(),"提交")]表示选择包含文本“提交”的按钮元素。
定位一组元素后,可以通过循环遍历这些元素来对每个元素进行操作,比如获取文本内容、点击元素等。