zoukankan      html  css  js  c++  java
  • python中通过selenium简单操作及xpath元素定位&轴定位

    浏览器的简单操作

    #
    导入webdriver模块 # 创建driver对象,指定Chrome浏览器 driver = webdriver.Chrome() # 窗口最大化 driver.maximize_window()
    # 设置窗口自定义,参数单位为像素
    driver.set_window_size(800, 600)
    # 访问百度 driver.get("http://baidu.com")
    # 后退 driver.back() # 前进 driver.forward() # 刷新 driver.refresh() # 关闭窗口 driver.close() # 关闭会话,关闭浏览器,关闭chromedriver driver.quit()

    selenium的8种定位方式

    6种靠单一的特征来找元素(id, calss_name, tag_name, name, link_text(2))

    组合各种特征和关系来找元素(xpath, css)

    1.id定位:唯一

     find_element_by_id()

    2.name定位:不唯一

    find_element_by_name()

    find_elements_by_name()

    3.class定位:不唯一

    find_element_by_class()

    4.tag_name定位:不唯一

    find_element_by_tag_name()  # 单数,在DOM页面中,匹配到的第一个元素

    find_elements_by_tag_name()  # 复数,返回的是一个列表,元素为webElement对象,全部匹配的元素

    5.文本匹配:/完全匹配/部分匹配

    find_element_by_link_text()

    find_element_by_partial_link_text()

    Xpath定位:

    1.通过自己来定位:

    语法://标签名[@属性名=值]

    例如:

    //*[@id="mCon"]/span  # *匹配所有元素

    //*[@id="kw"]

    2.通过文本来定位:

    语法://标签名[text()="值"]

    例如:

    //h1[(text()= "第20期")]  # 完全匹配

    contains(@属性名/text(), 被包含的内容)

    //h1[contains(text(), "第20期")]  # 部分匹配,包含

    //h1[contains(@id, "ccc")]    # 部分匹配,包含

    3.层级定位:

    如果找到的元素有两个或多个完全一样的元素,那么就通过他们不同的父级或父级的父级来定位

    / 绝对定位,单斜杠只能写子级,不能跳级写

    // 相对定位,双斜杠可以写子级,子级的子级等等(推荐使用)

    举例说明:

    l  输入账号

    //div//input[@name="account"]

    //div[@class="padding-cont pt-login"]//input[@placeholder="邮箱/账号/手机号"]

    l  输入密码

    //div[@class="padding-cont pt-login"]//input[@name="pass"]

    //div[@class="padding-cont pt-login"]//input[@type="password"]

    l  下次自动登录

    //div[@class="padding-cont pt-login"]//a[text()="下次自动登录"]

    //div[@class="padding-cont pt-login"]//a[@class="auto-login fl"]

    l  忘记密码

    //div[@class="padding-cont pt-login"]//a[@class="forget fr"]

    //div[@class="padding-cont pt-login"]//a[text()="忘记密码?"]

    l  登录按钮

    //div[@class="padding-cont pt-login"]//a[@class="btn-btn"]

    //div[@class="padding-cont pt-login"]//a[text()="登录"]

     Xpath轴定位:

    含义:通过同级目录来定位元素,叫做轴定位

    轴运算:

    ancestor:祖先节点,包括父节点

    parent:父节点

    preceding-sibling:当前元素节点标签之前的所有兄弟节点

    following-sibling:当前元素节点标签之后的所有兄弟节点

    preceding:当前元素节点标签之前的所有节点(HTML页面先后顺序)

    following:当前元素节点标签之后所有的节点(HTML页面先后顺序)

    轴定位语法:

    已知元素表达式/轴名称::标签名称[@属性名=值]

    示例:例://div//table//td//preceding::td

    应用场景:

    页面显示为一个表格样式的数据列,需要通过组合来定位元素

    # 单数
    driver.find_element_by_xpath() # 复数 driver.find_elements_by_xpath()

    xpath轴扩展资料:https://www.w3school.com.cn/xpath/xpath_axes.asp

  • 相关阅读:
    Windows vm install MAC OS
    DragonBones cpp
    APK .
    cocos2D-X vs2015 lua project 断点调试
    为什么前后端分离了,你比从前更痛苦?
    CSS3中一些鲜为人知的属性
    Web认证_介绍Web开发中几种常用的认证机制
    基于JWT的Token认证机制实现及安全问题
    别了,JavaScript;你好WebAssembly
    css设置全屏背景图,background-size 属性
  • 原文地址:https://www.cnblogs.com/xingyunqiu/p/11495267.html
Copyright © 2011-2022 走看看