Selenium 3 - 操控元素的方法


本文來自 白月黑羽教Python


點擊這里,邊看視頻講解,邊學習以下內容


選擇到元素之后,我們的代碼會返回元素對應的 WebElement對象,通過這個對象,我們就可以 操控元素了。

操控元素通常包括

  • 點擊元素

  • 在元素中輸入字符串,通常是對輸入框這樣的元素

  • 獲取元素包含的信息,比如文本內容,元素的屬性


點擊元素

點擊元素非常簡單,就是調用元素WebElement對象的 click方法。前面我們已經學過。

這里我們要補充講解一點。

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

例如,對於下面的這樣一個元素

out

我們要點擊 添加客戶 這個按鈕,既可以點擊 右邊對應的 綠色框子總的button 元素 ,也可以點擊紅色框子中的span元素 。

因為這兩個元素的中心點都是 button 內部,都是有效點擊區域


輸入框

輸入字符串也非常簡單,就是調用元素WebElement對象的send_keys方法。前面我們也已經學過。


如果我們要 把輸入框中已經有的內容清除掉,可以使用WebElement對象的clear方法

請大家點擊打開這個網址

並且按F12,觀察HTML的內容

我們要寫一個自動化程序:要求在輸入框中填入姓名:白月黑羽。

而且要做到輸入框中已經有的提示字符,需要先 清除掉

代碼應該如下

element = wd.find_element_by_id("input1")

element.clear() # 清除輸入框已有的字符串
element.send_keys('白月黑羽') # 輸入新字符串

獲取元素信息

獲取元素的文本內容

上一章,我們已經知道,通過WebElement對象的 text屬性,可以獲取元素 展示在界面上的文本內容。

比如

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

獲取元素屬性

通過WebElement對象的 get_attribute方法來獲取元素的屬性值,

比如要獲取元素屬性class的值,就可以使用 element.get_attribute('class')

如下:

element = wd.find_element_by_id('input_name')
print(element.get_attribute('class'))

執行完自動化代碼,如果想關閉瀏覽器窗口可以調用WebDriver對象的 quit 方法,像這樣 wd.quit()

獲取整個元素對應的HTML

要獲取整個元素對應的HTML文本內容,可以使用 element.get_attribute('outerHTML')

如果,只是想獲取某個元素 內部的HTML文本內容,可以使用 element.get_attribute('innerHTML')

獲取輸入框里面的文字

對於input輸入框的元素,要獲取里面的輸入文本,用text屬性是不行的,這時可以使用 element.get_attribute('value')

比如

element = wd.find_element_by_id("input1")
print(element.get_attribute('value')) # 獲取輸入框中的文本

獲取元素文本內容2

通過WebElement對象的 text屬性,可以獲取元素 展示在界面上的文本內容。

但是,有時候,元素的文本內容沒有展示在界面上,或者沒有完全完全展示在界面上。 這時,用WebElement對象的text屬性,獲取文本內容,就會有問題。

出現這種情況,可以嘗試使用 element.get_attribute('innerText'),或者 element.get_attribute('textContent')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM