zoukankan      html  css  js  c++  java
  • Selenium学习笔记||二、选择操作Web元素

    一、 Selenium自动化主要就是

      1. 选择界面元素

      2. 操作界面元素

        输入:点击、输入、拖拽

        输出:获取元素的各种属性

      3. 根据界面上获取的数据进行分析和处理

    二、 选择元素

      1. WebDriver:操作整个浏览器的当前整个页面

        A. 当前页面上选择符合查找条件的对象

        B. 打开网址、回退、前进、刷新页面

        C. 获取、改变浏览器窗口大小,关闭浏览器,截屏

        D. 获取、设置cookies

      2. WebElement:操作和对应Web元素

        A. 当前web元素的所有子元素里边符合查找条件的元素

        B. 操作该web元素,如:点击元素、输入字符、获取元素坐标、尺寸、文本内容、其他的属性信息。 

    三、 通过ID选择元素(效率最高)

      写法1:

    element = driver.find_elements_by_id("  ")   

      写法2:

    from selenium.webdriver.common.by import By
    
    driver.find_element(by = By.ID, value = "  ")

    四、已知异常可以放在try catch 中

    try:
        ele = driver.find_element_by_id("   ")
    except NoSuchElementException:
        print('NoSuchElementException')

    五、获取元素信息

      1. text属性:显示该元素在web页面显示出来的文本内容

      2. get_attribute方法

        A. 某个属性的值: ele.get_attribute('href')

    from selenium import webdriver
    driver = webdriver.Chrome(r"D:webdriverchromedriver_73.0.3683.68.exe")
    
    driver.get("http://www.baidu.com")#1.打开百度网页
    ele = driver.find_element_by_id("quickdelete")#2.查找元素id是quickdelete的元素
    print(ele.get_attribute("href"))#3. 获取href属性的值

        B. 某元素对应html源代码: ele.get_attribute('outerHTML')

    from selenium import webdriver
    driver = webdriver.Chrome(r"D:webdriverchromedriver_73.0.3683.68.exe")

    ele = driver.find_element_by_id("u1")
    print(ele.get_attribute('outerHTML'))

    driver.quit()

        C. 某元素的内部部分的html源代码: ele_attribute('innerhtml')

    from selenium import webdriver
    driver = webdriver.Chrome(r"D:webdriverchromedriver_73.0.3683.68.exe")

    ele = driver.find_element_by_id("u1")
    print(ele.get_attribute('innerHTML'))

    driver.quit()

     

    P.S.

    每次代码最后一行不加上driver.quit(),chromedriver的进程就一直都在,关闭浏览器也没有用

  • 相关阅读:
    TCP协议
    数据包以及数据传输
    网络模型
    Executors常见的线程池创建以及其问题
    线程池
    阻塞队列和死锁
    ConcurrentHashMap
    ReentrantLock,公平性锁和非公平性锁
    Lock
    jQuery如何获取table中每一行的数据并发送给后端?
  • 原文地址:https://www.cnblogs.com/Lixinhang/p/10840544.html
Copyright © 2011-2022 走看看