1、find_element_by_xx 定位单个元素
2、find_elements_by_xx 定位一组元素
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 返回一个空的列表 [ ] ,不会抛异常
定位到大于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()