selenium 定位元素

from selenium import webdriver
import time
driver= webdriver.Chrome()
# 访问网址
driver.get("http://127.0.0.1:8088/login")

# 元素定位的第二种方式,根据name属性定位(找到登录输入框并输入账户密码)
driver.find_element_by_name("username").send_keys("libai")
driver.find_element_by_name("password").send_keys("opmsopms123")

# 根据元素的第三种方式,根据class属性定位。若class属性有空格,证明是复合类,多个值以空格区分
# 登录按钮的  class="btn btn-lg btn-login btn-block" ;class中的这些属性有空格,证明是复合属性,检验4个属性都是唯一的,用那个属性都可以
# 选中属性并点击
driver.find_element_by_class_name("btn-login").click()

time.sleep(3)

# 点击项目管理按钮,根据css表达式定位找到并click()点击
driver.find_element_by_css_selector(
    "body > section > div.left-side.sticky-left-side > "
    "div.left-side-inner > ul > li:nth-child(2)").click()
# 匹配页面上每一个项目名称(列表页面,有多个项目名称)
ele = driver.find_elements_by_css_selector("#project-form-list > table >tbody > tr > td:nth-child(1)")
print(type(ele)) 返回的是列表

"""
此种方式,匹配页面元素,返回的是一个列表
若页面上,只有一个能匹配成功的,则返回一个元素列表,列表里只有一个
若页面上,有多个匹配成功的,则返回一个元素列表,列表里是一个个匹配成功的元素
若页面上,没有能匹配到的,则返回一个元素列表,列表是空的
    基于此特性,我们可以用来判断元素存不存在:
        写一个元素的唯一定位表达式,然后用此种匹配元素列表的方式去进行寻找
        判断元素列表是否为空,若为空,则元素不存在,反之存在
"""

 

posted @ 2021-06-26 15:35  大熊童鞋  阅读(59)  评论(0编辑  收藏  举报