一、单数定位与复数定位
1、find_element_by_xx 定位单个元素
2、find_elements_by_xx 定位一组元素
1、定位单个元素
1.通过id定位:find_element_by_id()
2.通过name定位:find_element_by_name()
3.通过class定位:find_element_by_class_name()
4.通过tag定位:find_element_by_tag_name()
5.通过link定位:find_element_by_link_text()
6.通过partial_link定位:find_element_by_partial_link_text()
7.通过xpath定位:find_element_by_xpath()
8.通过css定位:find_element_by_css_selector()
2、复数定位
1.通过id定位:find_elements_by_id()
2.通过name定位:find_elements_by_name()
3.通过class定位:find_elements_by_class_name()
4.通过tag定位:find_elements_by_tag_name()
5.通过link定位:find_elements_by_link_text()
6.通过partial_link定位:find_elements_by_partial_link_text()
7.通过xpath定位:find_elements_by_xpath()
8.通过css定位:find_elements_by_css_selector()
单数定位 与 复数定位
区别 1
返回对象不同
find_element 返回 element 元素对象
find_elements 返回 list of element 一个列表
区别2
定位到0个元素(找不到元素时候)
find_element 会抛异常,程序中断 , NoSuchElementException:Unable to locate
find_elements 返回一个空的列表 [ ] ,不会抛异常
区别3
定位到大于1个元素的时候
find_element 返回html中第一个元素
find_elements 返回所有的元素
复数定位下标取值,操作元素
示例代码如下:
# -*- coding:utf-8 -*-
# Author: Sky
# Email: 2780619724@qq.com
# Time: 2021/8/18 1:06
# Project: day01
# Module: study_16.py
# Environment: Python3.8.6 , Selenium3 环境 ( 3.141.0 版本)
# Environment: Chrome ( 92.0.4515.131, 正式版本) + chromedriver(92.0.4515.107版本)
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://49.235.92.12:8200/users/login/")
time.sleep(3)
# 多个input,用 element 取到 第一个 input
element = driver.find_element_by_tag_name("input")
print(element) # WebElement
# 有多个input,用elements取值,得到一个 list
elements = driver.find_elements_by_tag_name("input")
print(elements) # [WebElement]
# 多个input,用 element 取到第一个 input,发送用户名 ;
driver.find_element_by_tag_name("input").send_keys("112233456@qq.com")
# 有多个input,用elements取值,得到一个 list
all_input = driver.find_elements_by_tag_name("input")
# 判断总共有多少个元素
print("元素个数:%s" % len(all_input))
# 复数定位下标取值,操作元素
all_input[1].send_keys("123456")
all_input[2].click()
time.sleep(3)
driver.quit()