web自动化定位元素

# author:nly
# 时间:2022/6/7 14:34

from selenium import webdriver
from selenium.webdriver.common.by import By

# 打开浏览器
driver = webdriver.Chrome()

# 加载网页
driver.get("https://www.baidu.com")
"""
 定位元素
    1.通过id定位
        driver.find_element(By.ID, "kw").send_keys("码尚学院")
    2.通过name定位
        driver.find_element(By.NAME, "wd").send_keys("码尚学院")
    3.通过链接文字定位,只适用于a标签
        driver.find_element(By.LINK_TEXT, "新闻").click()
    4.通过部分链接文字定位,只适用于a标签
        driver.find_element(By.PARTIAL_LINK_TEXT, "").click()
    5.通过XPATH定位
        1)绝对路径:/开头的
        2)相对路径://开头的
            ①相对路径+索引定位
            //form/span[1]/input
            driver.find_element(By.XPATH, "//form/span[1]/input").send_keys("码尚学院")
            ②相对路径+属性定位
            //input[@autocomplete="off"]
            driver.find_element(By.XPATH, "//input[@autocomplete='off']").send_keys("码尚学院")
            ③相对路径+通配符(*//*[@autocomplete="off"] 或者 //*[@*="off"]
            driver.find_element(By.XPATH, "//*[@autocomplete='off']").send_keys("码尚学院")
            driver.find_element(By.XPATH, "//*[@*='off']").send_keys("码尚学院")
            ④相对路径+部分属性值
                以开头://input[starts-with(@autocomplete,"of")]
                driver.find_element(By.XPATH, "//input[starts-with(@autocomplete, 'of')]").send_keys("码尚学院")
                以结尾://input[substring(@autocomplete,2)="ff"]
                driver.find_element(By.XPATH, "//input[substring(@autocomplete, 2)='ff']").send_keys("码尚学院")
                包含://input[contains(@autocomplete,"of")]
                driver.find_element(By.XPATH, "//input[contains(@autocomplete,'of')]").send_keys("码尚学院")
            ⑤相对路径+文本定位
            //span[text()='按图片搜索']
            value = driver.find_element(By.XPATH, "//span[text()='按图片搜索']").get_attribute("class")
            print(value)
"""
"""
以上定位方式,基本可以定位所有元素。
还有一种,通过css定位,不常用
    1.绝对路径(不用)
    2.通过ID和class定位
    3.通过属性定位
    4.通过部分属性定位
    5.查询子元素定位
    6.查询兄弟节点定位
"""

 

posted @ 2022-06-07 16:39  牛小胖  阅读(45)  评论(0)    收藏  举报