Selenium WebDriver&WebElement简述

一.WebDriver

  1.介绍:操纵整个浏览器和当前页面

  2.导入webdreiver 

    from selenium import webdriver

  3.打开浏览器Chrome

    如果有配置驱动到环境变量,此处不需要带参数,如果没有需要带参数

    driver =  webdirver.Chrome()    或 webdirver.Chrome('r'驱动路径) 

  4.打开网页

    driver.get(url)

  5.等待

    (全局)隐式等待,等待find找到页面元素: driver.implicitly_wait(second),,,可在driver定义之后直接调用

      如果在执行某步操作需要等待加载元素,可以将等待时间加长,或者增加time.sleep(second)使程序等待second时间后再继续执行后续步骤

  6.查找元素

    6.1 element 和 elements 的区别

      element: 返回第一个匹配的元素,找不到 会报错

      elements : 返回所有匹配的元素,类型是列表, 找不到不会报错

    6.2 By

      ID: 不唯一和不固定的ID不要使用

      Class Name:通常有两个以上

      Tag Name:标签名,即 h1,table,li,p等

      Name:

      Link Text: 超链接文本

      Partial Link Text :超链接文本(部分匹配)

   7.CSS Selector

    参考网址:https://www.w3school.com.cn/cssref/css_selectors.asp

    

  8.xpath

    '/html/body/div/div/a[2]'

    8.1 当前节点

      // 从当前节点寻找所有的后代元素,不写表示根节点

        //span: 从根节点开始寻找所有的span元素,无论在什么位置

        //div//p:从根节点寻找所有的div元素,从div节点开始寻找所有的p元素,无论在什么位置,和'//div/p'是不一样的!  ''//div/p"表示从根节点寻找所有的div元素,从div节点寻找子节点p

    8.2.根据属性选择

      //*[@style]: 选择所有具有style属性的元素

      //p[@spec='len2']选择所有具有spec值为len2的p元素

    8.3 根据id/class选择

      //div[@id="food"]

      //div[@class="cheese"]

    问题:如何获得所有div下的第一个子节点(不确定子节点的tab name)?

      //div/*[1]   

        获得最后一个子节点 //div/*[last()]

    8.4 position()

      //*[position()>=last()]  最后一个元素

      //*[position()>=last()-1]  倒数第二个元素

      //*[position()>last-1]  最后2个元素

    8.5组选择

      //p|//button  同时选择p元素和button元素

     8.6 兄弟节点

      //*[@id="food"]/following-sibling::div  选择和id=food的tab后面的兄弟节点div元素

      //*[@id="food"]/preceding-sibling::div 选择和id=food的tab前面的兄弟节点div元素

      //*[@id="food"]/following-sibling::*[1] 选择和id=food的tab后面的第一个兄弟节点

       缺省的使用css,实在找不到的用xpath

    8.7 选择父元素

      //*[@id="food"]/.. 选择id=food的tab元素的父节点

    8.8 从当前路径找 ./

      food = driver.find_element_by_id("food")

      eles = food.find_elements_by_xpath(".//p")   #从food路径下找所有的p元素

      eles =food.find_elmengtss_by_xpath("//p")  #从根目录下找所有的p元素

    8.8 从当前节点的父节点开始找   ../

二.WebElement

  1.获取输入框文本

    .get_attribute('value')

    .text

    .get_attribute('innerText')

  2.点击BUTTON

    .click()

  3.清空输入框

    .clear()

  4.输入文本

    .send_keys(string)

  5.获取标签属性

       .value_of_css_property
原文地址:https://www.cnblogs.com/Tester_Dolores/p/11366885.html