zoukankan      html  css  js  c++  java
  • Selenium(三):操控元素的基本方法

    1. 操控元素的基本方法

    选择到元素之后,我们的代码会返回元素对应的 WebElement对象,通过这个对象,我们就可以操控元素了。

    操控元素通常包括:

    点击元素

    在元素中输入字符串,通常是对输入框这样的元素

    获取元素包含的信息,比如文本内容,元素的属性

    1.1 点击元素

    点击元素非常简单,就是调用元素WebElement对象的 click方法。前面已经使用过了。

    当我们调用WebElement对象的click方法去点击元素的时候,浏览器接收到自动化命令,点击的是该元素的中心点位置 。

    1.2 输入框

    输入字符串也非常简单,就是调用元素WebElement对象的send_keys方法。前面已经使用过了。

    html代码:

    <h3 style="color: brown">输入框</h3>
    <div>
        <input id="input1" value="请输入姓名">
        <br/><br/>
    </div>

    并且按F12,观察HTML的内容

    我们要写一个自动化程序:要求在输入框中填入姓名:爱编程的小灰灰。

    而且要做到输入框中已经有的提示字符,需要先清理掉。

    代码应该如下:

    from selenium import webdriver
    
    wd = webdriver.Chrome(r'E:webdriverschromedriver.exe')
    
    wd.get('http://127.0.0.1:8020/day01/index.html')
    
    element = wd.find_element_by_id("input1")
    
    element.clear() # 清除输入框已有的字符串
    element.send_keys('爱编程的小灰灰') # 输入新字符串

    1.3 获取元素信息

    1.3.1 获取元素的文本内容

    通过前面的学习,我们已经知道,通过WebElement对象的text属性,可以获取元素展示在界面上的文本内容。

    比如:

    element = wd.find_element_by_id('wolf')
    print(element.text)

    1.3.2 获取元素属性

    通过WebElement对象的get_attribute方法来获取元素的属性值,比如要获取元素属性class的值,就可以使用element.get_attribute('class')。

    html代码:

    <form action="" method="post">
        <input type="text" name="" id="input1" value="1" class="inputclass" />
        <input type="text" name="" id="input2" value="2" class="inputclass"/>
    </form>

    比如:

    from selenium import webdriver
    
    wd = webdriver.Chrome(r'E:webdriverschromedriver.exe')
    
    wd.get('http://127.0.0.1:8020/day01/index.html')
    
    element = wd.find_element_by_id('input1')
    print(element.get_attribute('class'))

    执行完自动化代码,如果想关闭浏览器窗口可以调用WebDriver对象的 quit 方法,像这样 wd.quit()。

    1.3.3 获取整个元素对应的HTML

    要获取整个元素对应的HTML文本内容,可以使用element.get_attribute('outerHTML')。

    如果,只是想获取某个元素内部的HTML文本内容,可以使用element.get_attribute('innerHTML')。

    1.3.4 获取输入框里面的文字

    对于input输入框的元素,要获取里面的输入文本,用text属性是不行的,这时可以使用element.get_attribute('value')。

    比如:

    from selenium import webdriver
    
    wd = webdriver.Chrome(r'E:webdriverschromedriver.exe')
    
    wd.get('http://127.0.0.1:8020/day01/index.html')
    
    element = wd.find_element_by_id("input1")
    print(element.get_attribute('value')) # 获取输入框中的文本

    1.3.5 获取元素文本内容2

    通过WebElement对象的text属性,可以获取元素展示在界面上的文本内容。

    但是,有时候,元素的文本内容没有展示在界面上,或者没有完全完全展示在界面上。这时,用WebElement对象的text属性,获取文本内容,就会有问题。

    出现这种情况,可以尝试使用element.get_attribute('innerText'),或者element.get_attribute('textContent')。

  • 相关阅读:
    SQL SEREVR IO
    INTEL
    windows performance
    The DiskSpd Storage Performance Tool
    machine Learning
    NOSQL
    X64 Deep Dive
    Debugging and performance,ETW
    Disk Performance
    WCF transport-and-message-security
  • 原文地址:https://www.cnblogs.com/liuhui0308/p/11933254.html
Copyright © 2011-2022 走看看