selenium自動化測試入門 操作元素對象
一、元素的常用操作
element.click() # 單擊元素;除隱藏元素外,所有元素都可單擊
element.submit() # 提交表單;可通過form表單元素提交表單
element.clear() # 清除元素的內容;如果可以的話
element.send_keys(『需要輸入的內容』) # 模擬按鍵輸入;只針對支持輸入的元素
注意:send_keys() 輸入的內容必須為字元串
搜狗查詢實例:
from selenium import webdrivernimport timenndriver = webdriver.Chrome()ndriver.maximize_window() # 最大化ndriver.get(rhttps://www.sogou.com/) # 打開網頁ndriver.find_element_by_id(query).send_keys(selenium) # 搜索框輸入seleniumntime.sleep(2) # 等待3秒ndriver.find_element_by_id(query).clear() # 清除搜索框內容ntime.sleep(2)ndriver.find_element_by_id(query).send_keys(selenium) # 重新輸入內容ndriver.find_element_by_id(sf).submit() # 提交搜索框的表單n# driver.find_element_by_id(stb).submit() # 提交按鈕也可提交表單,單擊按鈕也可以ntime.sleep(2)ndriver.quit() # 關閉瀏覽器n
注意:submit() 提交表單,可以是提交按鈕,也可以是表單元素,也可以是輸入框元素
二、元素的常用方法
element.location 返回元素的坐標字典(相對於網頁左上角0,0開始)
element.text 獲取元素的文本,頁面上看得到的文本
element.get_attribute(屬性名稱) 獲得元素的屬性 強調「有」
element.get_property(屬性名稱) 獲得元素的固有屬性值 強調「專」
element.is_displayed() 返回元素的結果是否可見,有些元素肉眼可見,但是他是隱藏的
示例:
from selenium import webdrivernimport timenndriver = webdriver.Chrome()ndriver.maximize_window() # 最大化ndriver.get(rhttps://www.sogou.com/) # 打開網頁ndriver.find_element_by_id(query).send_keys(selenium) # 搜索框輸入seleniumnelement=driver.find_element_by_id(query)nprint(搜索框的內容為:,element.get_attribute(value))nprint(搜索框的class屬性:,element.get_attribute(class))nprint(搜索框的type屬性:,element.get_attribute(type))nprint(搜索框的坐標位置:,element.location)nprint(搜索框是否可操作:,element.is_displayed())ntime.sleep(2)ntext = driver.find_element_by_class_name(erwm-box).text # 獲取二位碼的文本nprint(底部二維碼的文本為:,text)ntime.sleep(2)ndriver.quit() # 關閉瀏覽器n
1、element.location 獲取元素的坐標位置
對於已載入到瀏覽器的底部元素,操作元素時現在chrome無法自動拖動滾動條,需要獲取元素位置後,採用js拖動滾動條到相應位置採用操作元素。
2、element.text 獲取元素的文本
<div class="erwm-box">n <span class="ewm"></span>n <div class="erwx">n <p>搜狗搜索APP</p>n <p class="p2">搜你所想</p>n </div>n </div>n
如上,我們定位class="erwm-box"元素,獲取到的文本是 [搜狗搜索APP 搜你所想] ,也就是界面上能看到的文字內容。輸入框除外(輸入框的值是存儲在value屬性中),只要是界面上的文本內容都可以獲取。
多用於校驗點。
3、element.get_attribute(屬性名稱) 獲取對應的屬性值,強調「有」
<input type="text" class="sec-input" name="query" id="query" maxlength="100" autocomplete="off">
如上搜索輸入框的屬性有type、class、name、id、maxlength、autocomplete;我都可以通過get_attribute()獲取到他的值,因為他』有』。
value是特殊的屬性,輸入框,單項按鈕,多選按鈕多具有改屬性。
4、element.get_property(屬性名稱) 獲得元素的固有屬性值,強調「專」
它與get_attribute() 差別,get_property()是獲取元素的固有屬性。
我們所有的元素都有特定固有屬性,如id、type、value等。
當使用get_attribute()無法獲取到屬性的值時,可使用get_property()。
5、element.is_displayed() 判定改元素是否可見
當我們定位到了元素,但是無法操作時,可以看看他是否可見,不可見不一定就是在界面上消失了。
6、其他方法
element.size 元素的大小
element.is_enabled() 元素是否可用
element.is_selected() 元素是否被選中,用於檢測複選框或單項按鈕是否被勾選
推薦閱讀:
※我也終於用上Powershell了
※該怎麼樣才能讓所有測試人員迅速學會自動化測試呢?
※Python實踐-Python自動化測試常用庫整理
※Python實踐3-Tenacity提高自動測試健壯性
※在國外,資深的軟體測試人員大多是手動測試,他們厲害之處在於測試用例的設計,但在國內,很多測試人員都把自動化測試當成很厲害的資本,為什麼?