zoukankan      html  css  js  c++  java
  • selenium 八种元素定位方法

    from selenium import webdriver
    import time
    
    # 这一步会打开一个空白的浏览器
    driver = webdriver.Chrome()
    # 访问网址
    driver.get("http://127.0.0.1:8088/login")
    
    # 元素定位的第一种方式--id属性定位
      driver.find_element_by_id("kw")
    # 元素定位的第二种方式,根据 name 属性定位
    driver.find_element_by_name("username").send_keys("libai")
    driver.find_element_by_name("password").send_keys("opmsopms123")
    
    # 元素定位的第三种方式,根据 class 属性定位
    # 若 class 属性有空格,证明是复合类,多个值以空格区分
    driver.find_element_by_class_name("btn-login").click()
    
    time.sleep(3)
    # 元素定位的第四种方式,根据链接文本定位-不能漏字错字
    print(driver.find_element_by_link_text("OPMS官网").text)  # text 可以获取元素的文本值
    # 元素定位第五种方式,根据链接文本--模糊匹配-不能错字但可以漏字
    print(driver.find_element_by_partial_link_text("OPM").text)
    
    # 元素定位第六种方式, 根据 css 表达式定位(万能定位方式)
    driver.find_element_by_css_selector(
        "body > section > div.left-side.sticky-left-side > div.left-side-inner > ul > li:nth-child(2)").click()
    
    # 元素定位第七种方式, 根据 xpath定位
    driver.find_element_by_xpath("/html/body/section/div[1]/div[3]/ul/li[5]").click()
    
    # 元素定位的第八种方式,根据标签名称定位
    driver.find_element_by_tag_name("")  # 多数情况下,用不到这个
    
    # 找不到元素的四种原因
    #   1、元素定位表达式写错了,或元素不存在于界面
    #   2、元素未加载,而代码已经操作到
    #   3、内嵌网页
    #   4、多标签页
    世界上最美的风景,是自己努力的模样
  • 相关阅读:
    MySQL -- 表联结
    Unittest方法 -- 项目实现自动发送邮件
    Linux工作中常用命令
    Requests方法 -- Token获取操作
    Requests方法 -- 关联用例执行
    Requests方法 -- Blog流程类进行关联
    Requests方法 -- 参数化
    defer和async的区别
    js函数收藏:获取cookie值
    XSHELL使用技巧总结
  • 原文地址:https://www.cnblogs.com/xiong-hua/p/14916180.html
Copyright © 2011-2022 走看看