本文來自 白月黑羽教Python
選擇到元素之后,我們的代碼會返回元素對應的 WebElement對象,通過這個對象,我們就可以 操控
元素了。
操控元素通常包括
-
點擊元素
-
在元素中輸入字符串,通常是對輸入框這樣的元素
-
獲取元素包含的信息,比如文本內容,元素的屬性
點擊元素
點擊元素
非常簡單,就是調用元素WebElement對象的 click方法。前面我們已經學過。
這里我們要補充講解一點。
當我們調用 WebElement 對象的 click 方法去點擊 元素的時候, 瀏覽器接收到自動化命令,點擊的是該元素的 中心點
位置 。
例如,對於下面的這樣一個元素
我們要點擊 添加客戶 這個按鈕,既可以點擊 右邊對應的 綠色框子總的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')