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提高自動測試健壯性
在國外,資深的軟體測試人員大多是手動測試,他們厲害之處在於測試用例的設計,但在國內,很多測試人員都把自動化測試當成很厲害的資本,為什麼?

TAG:软件测试 | 自动化测试 | Selenium |