1. 程式人生 > >輕松自動化---selenium-webdriver(python) (六)

輕松自動化---selenium-webdriver(python) (六)

import 關鍵字 百度一下 清除 attr family .cn 參考 keys

http://www.testclass.net/ 測試教程網,專業的selenium 學習網站。

本節知識點:

操作對象:

  • · click 點擊對象
  • · send_keys 在對象上模擬按鍵輸入
  • · clear 清除對象的內容,如果可以的話

WebElement 另一些常用方法:

  • · text 獲取該元素的文本
  • · submit 提交表單
  • · get_attribute 獲得屬性值

======================================

操作測試對象

前面講到了不少知識都是定位元素,定位只是第一步,定位之後需要對這個原素進行操作。

鼠標點擊呢還是鍵盤輸入,這要取決於我們定位的是按鈕還輸入框。

一般來說,webdriver中比較常用的操作對象的方法有下面幾個

· click 點擊對象

· send_keys 在對象上模擬按鍵輸入

· clear 清除對象的內容,如果可以的話

在我們本系列開篇的第一個例子裏就用到了到click 和send_skys ,別翻回去找了,我再貼一下代碼:

技術分享圖片
# coding = utf-8
from selenium import webdriver

browser = webdriver.Firefox()

browser.get("http://www.baidu.com")
browser.find_element_by_id("kw").clear()
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
browser.quit()
技術分享圖片

send_keys("XX")   用於在一個輸入框裏輸入內容。

click()   用於點擊一個按鈕。

clear()   用於清除輸入框的內容,比如百度輸入框裏默認有個“請輸入關鍵字”的信息,再比如我們的登陸框一般默認會有“賬號”“密碼”這樣的默認信息。clear可以幫助我們清除這些信息。

WebElement 另一些常用方法:

· text 獲取該元素的文本

· submit 提交表單

· get_attribute 獲得屬性值

text

用於獲取元素的文本信息

下面把百度首頁底部的聲明打印輸出

技術分享圖片
#coding=utf-8
from selenium import webdriver

import  time

driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
time.sleep(2)

#id = cp 元素的文本信息
data=driver.find_element_by_id("cp").text
print data   #打印信息

time.sleep(3)
driver.quit()
技術分享圖片

輸出:

>>> 
?2013 Baidu 使用百度前必讀 京ICP證030173號 

submit

提交表單

我們把“百度一下”的操作從click 換成submit :

技術分享圖片
#coding=utf-8
from selenium import webdriver

import time

driver = webdriver.Firefox()
driver.get("http://www.baidu.com")

driver.find_element_by_id("kw").send_keys("selenium")
time.sleep(2)
#通過submit() 來操作
driver.find_element_by_id("su").submit()  

time.sleep(3)
driver.quit()
技術分享圖片

這裏用submit 與click的效果一樣,我暫時還沒想到只能用submit 不能用click的場景。他們之間到底有啥區別,知道的同學請留言告訴我。

get_attribute

獲得屬性值。

這個函數的用法前面已經有出現過,在定位一組元素的時候有使用到它,只是我們沒有做過多的解釋。

一般用法:

技術分享圖片
select = driver.find_element_by_tag_name("select")

allOptions = select.find_elements_by_tag_name("option")

for option in allOptions:

    print "Value is: " + option.get_attribute("value")

    option.click()
技術分享圖片

具體應用參考:

定位一組元素:http://www.cnblogs.com/fnng/p/3190966.html

小結:

學到這裏我們是不是已經撐握了不少知識,簡單的操作瀏覽器,定位元素,操作元素以及打印一些信息。其實,我們前面的學習中大多使用的是WebElement 裏的方法。

WebElement的方法:

一般來說,所有有趣的操作與頁面進行交互的有趣的操作,都通過 WebElement 完成

classselenium.webdriver.remote.webelement.WebElement(parent, id_)

這個類代表HTML頁面元素

技術分享圖片
id_

#當前元素的ID

 

tag_name

#獲取元素標簽名的屬性

 

text

#獲取該元素的文本。

 

click()

#單擊(點擊)元素

 

submit()

#提交表單

 

clear()

#清除一個文本輸入元素的文本

 

get_attribute(name)

#獲得屬性值

 

s_selected(self)

#元素是否被選擇

Whether the element is selected.

is_enabled()

#元素是否被啟用

 

find_element_by_id(id_)

find_elements_by_id(id_)

#查找元素的id 

 

find_element_by_name(name)

find_elements_by_name(name)

#查找元素的name

 

find_element_by_link_text(link_text)

find_elements_by_link_text(link_text)

#查找元素的鏈接文本

 

find_element_by_partial_link_text(link_text)

find_elements_by_partial_link_text(link_text)

#查找元素的鏈接的部分文本

 

find_element_by_tag_name(name)

find_elements_by_tag_name(name)

#查找元素的標簽名

 

find_element_by_xpath(xpath)

#查找元素的xpath

 

find_elements_by_xpath(xpath)

#查找元素內的子元素的xpath

 

find_element_by_class_name(name)

#查找一個元素的類名

 

find_elements_by_class_name(name)

#查找元素的類名

 

find_element_by_css_selector(css_selector)

#查找並返回一個元素的CSS 選擇器

 

find_elements_by_css_selector(css_selector)

#查找並返回多個元素的CSS 選擇器列表

 

send_keys(*value)

#模擬輸入元素
技術分享圖片

--------------------------

學習更多selenium 內容:

「功能測試自動化」匯總

輕松自動化---selenium-webdriver(python) (六)