Selenium(三):操控元素的基本方法

1. 操控元素的基本方法

選擇到元素以後,咱們的代碼會返回元素對應的 WebElement對象,經過這個對象,咱們就能夠操控元素了。html

操控元素一般包括:web

點擊元素chrome

 

在元素中輸入字符串,一般是對輸入框這樣的元素編程

 

獲取元素包含的信息,好比文本內容,元素的屬性瀏覽器

1.1 點擊元素

點擊元素很是簡單,就是調用元素WebElement對象的 click方法。前面已經使用過了。post

當咱們調用WebElement對象的click方法去點擊元素的時候,瀏覽器接收到自動化命令,點擊的是該元素的中心點位置 。學習

1.2 輸入框

輸入字符串也很是簡單,就是調用元素WebElement對象的send_keys方法。前面已經使用過了。ui

html代碼:spa

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

而且按F12,觀察HTML的內容code

咱們要寫一個自動化程序:要求在輸入框中填入姓名:愛編程的小灰灰。

並且要作到輸入框中已經有的提示字符,須要先清理掉。

代碼應該以下:

from selenium import webdriver

wd = webdriver.Chrome(r'E:\webdrivers\chromedriver.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:\webdrivers\chromedriver.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:\webdrivers\chromedriver.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')。

相關文章
相關標籤/搜索