1. 程式人生 > >selenium + webdriver(python)(四)

selenium + webdriver(python)(四)

本節知識點:

操作物件:

  • · 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) #模擬輸入元素
複製程式碼