zoukankan      html  css  js  c++  java
  • Selenium的使用

    @

    选择元素的基本方法

    通过webdriver自带的元素选择器等选择元素

    选择元素

    通过find_element_by_xxxxxxfind_elements_by_xxxxxx

    xxxxx为选择元素的关键字,常用关键字有:

    1.id定位:find_element_by_id(self, id_)
    2.name定位:find_element_by_name(self, name)
    3.class定位:find_element_by_class_name(self, name)
    4.tag定位:find_element_by_tag_name(self, name)
    
    1. 使用 find_elements 选择的是符合条件的所有元素, 如果没有符合条件的元素, 返回空列表
    2. 使用 find_element 选择的是符合条件的第一个元素, 如果没有符合条件的元素, 抛出NoSuchElementException 异常

    通常程序的运行速度是远远大于网页请求渲染速度的,为了避免选择元素时NoSuchElementException异常的抛出,可以使用Selenium 的 Webdriver 对象 中的 implicitly_wait方法

    该方法接受一个参数, 用来指定 最大等待时长。

    from selenium import webdriver
    
    wd = webdriver.Chrome()
    
    wd.implicitly_wait(10)
    
    wd.get('https://www.baidu.com')
    
    element = wd.find_element_by_id('kw')
    
    element.send_keys('lpl
    ')
    
    element = wd.find_element_by_id('1')
    
    print (element.text)
    

    操纵元素

    1. 通过 WebElement 对象的.click()函数点击元素
    2. 输入框的操作可以用 WebElement 对象的.clear().send_keys()方法
          element.clear() # 清除输入框已有的字符串
          element.send_keys('白月黑羽') # 输入新字符串
      
    3. 获取元素的文本信息可以通过.text方法
    4. 获取元素属性和输入框内的文本则可以通过.get_attribute()方法
      get_attribute('class') # 获取元素属性
      get_attribute('value')) # 获取输入框中的文本
      

    通过CSS Selector 选择元素

    通过 CSS Selector 选择元素的方法是

    find_element_by_css_selector(CSS Selector参数)
    find_elements_by_css_selector(CSS Selector参数)
    

    常用的选择方法

    选择器 表达式
    根据class选择 .class值
    根据id选择 #id值
    父类下的子类 元素1 空格/> 元素2
    根据属性选择 div[class='SKnet']

    根据属性选择还可以通过通配符选择以包含...开头结尾的元素

    1. 选择a节点,里面的href属性包含了 miitbeian 字符串,a[href*="miitbeian"]
    2. 选择a节点,里面的href属性以 http 开头 ,a[href^="http"]
    3. 要选择a节点,里面的href属性以 gov.cn结尾 ,a[href$="gov.cn"]
    4. 如果一个元素具有多个属性div[class=misc][ctype=gun]

    CSS选择器还可以联合使用,如div.footer1 > span.copyright
    以及进行组选择如 div.footer1 , span.copyright

    最后还可以按照次序进行选择

    选择器 表达式
    父元素的第n个子节点 span:nth-child(2)
    父元素的倒数第n个子节点 p:nth-last-child(1)
    父元素的第几个某类型的子节点 span:nth-of-type(1)
    父元素的倒数第几个某类型的子节点 p:nth-last-of-type(2)
    相邻兄弟节点选择 h3 + span
    后续所有兄弟节点选择 h3 ~ span

    通过xpath选择元素

    通过 xpath 选择元素的方法是

    find_element_by_xpath(xpath参数)
    find_elements_by_xpath(xpath参数)
    

    xpath 可以通过相对路径绝对路径两种方式进行选择,通常相对路径使用较多

    常用的选择方法

    选择器 表达式
    根据属性选择 [@属性名='属性值']
    属性值包含字符串 . //*[contains(@style,'color')]
    属性值以字符串开头 //*[starts-with(@style,'color')]
    属性值以字符串结尾 //*[ends-with(@style,'color')]

    xpath选择器进行组选择用| 进行分割,类似css的,

    同样的xpath也可以通过次序进行选择

    选择器 表达式
    某类型 第几个 子元素 //p[2]
    某类型 倒数第几个 子元素 //p[last()-1]
    范围选择 //option[position()<=2]
    后续所有兄弟节点选择 following-sibling::

    同时xpath的优势在于可以使用子节点反选父节点使用//*[@id='china']/../../..

    最后,以上包括css,xpath都可以通过chrome的开发者工具栏中ctrl+f进行表达式的验证

  • 相关阅读:
    Httprunner生成Allure格式HTML报告
    Go语言编写单元测试用例
    dotnet 在 UOS 国产系统上安装 dotnet sdk 的方法
    dotnet 在国产 UOS 系统利用 dotnet tool 工具做文件传输
    webpack丑化插件
    webpack自动生成html
    webpack vue
    webpack vue
    HO引擎近况20210225
    常用十大算法(三)— 动态规划算法
  • 原文地址:https://www.cnblogs.com/cokefentas/p/14969723.html
Copyright © 2011-2022 走看看