• css定位方法


    css选择器方法(待补充)

    css定位快,语法简洁
    常用属性css定位:

    1、可以通过元素的id、class、标签这三个常规属性直接定位到

    2、#代表id driver.find_element_by_css_selector('#kw')
    3、.代表class driver.find_element_by_css_selector('.s_ipt')
    4、直接使用标签来定位(最好结合其他方法组合定位) driver.find_element_by_css_selector('input')
    5、定位name属性 driver.find_element_by_css_selector("[name='wd']")
    6、通过type属性定位 driver.find_element_by_css_selector('[type="text"]')
    7、可以通过标签与属性组合来定位
      1-通过标签与class属性来定位:driver.find_element_by_css_selector('input.s_ipt')
      2-通过标签与id属性来定位:driver.find_element_by_css_selector('input#kw')
      3-通过标签与其他属性定位:driver.find_element_by_css_selector('input[name="wd"]')
    8、通过层级关系定位:driver.find_element_by_css_selector('form#form>span>input')
    9、根据索引定位元素:driver.find_element_by_css_selector('div#switch>a:nth-child(2)')
    css逻辑运算:
     1、同时匹配多个属性:
     driver.find_element_by_css_selector('input[id="kw"][name="wd"]').send_keys('python')
     driver.find_element_by_css_selector('input[value="百度一下"][type="submit"]').click()

    css高级用法:

    后代元素:所有具有相同祖先的元素(包括子元素)
    子元素:所有具有相同parent的元素(范围小于后代元素)
    后代选择器:<S1> <S2> s2是s1的后代元素
    子元素选择器:<s1>大于号<s2> S1与s2是父子关系
    连续使用:#many>div>p.special 元素之间不存在越级
    相邻兄弟元素选择器:
    <s1>+<s2>:<s1>与<s2>是同级关系并且紧靠一起 示例:#food + div
    非相邻兄弟元素选择器:
    使用场景:同一父元素的子元素,元素之间没有紧靠在一起
    <s1>~<s2> <s1>与<s2>是同级关系,无需紧靠一起
    #food ~ div
    属性选择器:
    *[属性=”属性值”] *表示任意元素标签名,如p, div,li,button,等等
    p[spec*='len2'] #属性spec包含len2的p元素
    p[spec^='len2'] #属性spec以len2开头的p
    p[spec$='len2'] #属性spec以len2结尾的p
    组选择器:
    <s1>,<s2> <s1>与<s2>表示两组不同的css选择器
    示例: div,span,p 同时选择所有div,span,p元素
    伪类nth-child,nth-of-type:
    使用场景:根据下标选择子元素,下标从1开始
    <s1>:nth-child(n) #从<s1>中选择第n个元素,且<s1>表示的元素必须位于父元素的第n位
    <s1>:nth-of-type(n) #从<s1>中选择第n个元素,对<s1>表示的元素处于第几位没有要求
    <s1>表示一组选择器

    例子:
      
    driver.find_element_by_css_selector('#kw').send_keys('python')
    driver.find_element_by_css_selector('.s_ipt').send_keys('python')
    driver.find_element_by_css_selector('input')
    # 通过name 属性来定位
    driver.find_element_by_css_selector("[name='wd']").send_keys('python')
    # 通过type属性定位
    driver.find_element_by_css_selector('[type="text"]').send_keys('python')
    # 通过标签与class属性来定位
    driver.find_element_by_css_selector('input.s_ipt').send_keys('python')
    # 通过标签与id属性来定位
    driver.find_element_by_css_selector('input#kw').send_keys('python')
    # 通过标签与其他属性来定位
    driver.find_element_by_css_selector('input[name="wd"]').send_keys('python')
    # css通过层级关系定位
    driver.find_element_by_css_selector('form#form>span>input').send_keys('python')
    代码
  • 相关阅读:
    Error: listen EADDRINUSE: address already in use :::80报错解决
    kettle连接oracle
    Oracle 11g RAC使用Manual和Policy Managed方法配置
    Veritas NetBackup命令行添加ESXi主机,即时恢复虚拟机操作方法。
    在 ESXi 主机上关闭无响应的虚拟机电源 (1004340)
    [bug]记一次同步数据问题排查
    关于cmake和开源项目发布的那些事(PF)
    React 配置 @ 路径别名
    react httpproxymiddleware 跨域处理
    reactrouterconfig (嵌套路由)使用
  • 原文地址:https://www.cnblogs.com/aiyumo/p/12576150.html
Copyright © 2020-2023  润新知