美文网首页
Web UI自动化-元素定位

Web UI自动化-元素定位

作者: candice0430 | 来源:发表于2022-08-16 10:00 被阅读0次

    selenium元素定位方式有以下八种:


    元素定位8中方式

    本文主要介绍css_selector方式进行定位

    css_selector方式定位元素:

    • 通过ID和Class定位
    • 通过绝对路径和相对路径定位
    • 通过属性定位
    • 通过模糊属性定位
    • 通过层级关系定位
    • 通过兄弟节点定位

    前提准备:

    1.python 环境安装
    2.pip install selenium
    3.浏览器驱动安装,本文选择chrome driver,将驱动放到工程下或者配置环境变量(ps:注意浏览器版本和驱动要一致哦)
    4.编写代码打开浏览器

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    import time
    
    driver = webdriver.Chrome()
    driver.get('http://www.baidu.com')
    time.sleep(2)
    
    1.通过ID和Class定位

    以百度页面搜索为例

    • 通过F12查看元素
    <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    
    • 通过ID查找元素:#
    driver.find_element(By.CSS_SELECTOR,value='#kw').sendkeys('hello')
    
    • 通过Class查找:.
    driver.find_element(By.CSS_SELECTOR,value='.s_ipt').sendkeys('hello')
    
    2.通过相对路径和绝对路径查找: 上下级关系用>或空格
    • 通过F12查看元素


      image.png
    • 通过绝对路径查找元素:> 或空格
    driver.find_element(By.CSS_SELECTOR,value='html>body>div>div>div>div>div>form>span>input').sendkeys('hello')
    driver.find_element(By.CSS_SELECTOR,value='html body div div div div div form span input').sendkeys('hello')
    
    • 通过相对路径查找:
    driver.find_element(By.CSS_SELECTOR,value='form span input').sendkeys('hello')
    driver.find_element(By.CSS_SELECTOR,value='form>span>input').sendkeys('hello')
    
    3.通过属性定位:
    • 通过F12查看元素
    <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    
    • 通过属性[]:autocomplete="off"
    driver.find_element(By.CSS_SELECTOR,value=["autocomplete='off'"]).sendkeys('hello')
    
    4.通过属性模糊定位:

    (1)*:包含
    (2)^:以什么开头
    (3)$:以什么结尾

    • 通过F12查看元素
    <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    
    • 通过属性[]:autocomplete="off"
    driver.find_element(By.CSS_SELECTOR,value=["autocomplete*='ff'"]).sendkeys('hello')
    driver.find_element(By.CSS_SELECTOR,value=["autocomplete^='of'"]).sendkeys('hello')
    driver.find_element(By.CSS_SELECTOR,value=["autocomplete$='f'"]).sendkeys('hello')
    
    5.层级关系,一般会和id和class结合使用,并运用上下级关系:
    • 通过F12查看元素


      image.png
    • 确定层级关系:form-span-input

    driver.find_element(By.CSS_SELECTOR,value="form#form>span>input").sendkeys('hello')
    driver.find_element(By.CSS_SELECTOR,value="form.fm span input").sendkeys('hello')
    
    6.通过兄弟节点定位:

    (1)第一个节点:first-child
    (2)第2、3、4...n个节点:nth-child(n)
    (3)最后一个节点:last-child

    • 通过F12查看元素


      image.png
    • 确定层级关系:form-span-input
    driver.find_element(By.CSS_SELECTOR,value="div#s-top=left a:first_child").click()
    # 第二个节点
    driver.find_element(By.CSS_SELECTOR,value="div#s-top=left>a:nth-child(2)").click()
    driver.find_element(By.CSS_SELECTOR,value="div#s-top=left a:last-child").click()
    

    相关文章

      网友评论

          本文标题:Web UI自动化-元素定位

          本文链接:https://www.haomeiwen.com/subject/wzsrgrtx.html