前面講到了不少知識都是定位元素,定位只是第一步,定位之後需要對這個原素進行操作。
滑鼠點擊呢還是鍵盤輸入,這要取決於我們定位的是按鈕還輸入框。
一般來說,webdriver中比較常用的操作對象的方法有下面幾個
· click 點擊對象
· send_keys 在對象上類比按鍵輸入
· clear 清除對象的內容,如果可以的話
在我們本系列開篇的第一個例子裡就用到了到click 和send_skys ,別翻回去找了,我再貼一下代碼:
# coding = utf-8from 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-8from 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").textprint data #列印資訊 time.sleep(3)driver.quit()
輸出:
>>>
2013 Baidu 使用百度前必讀 京ICP證030173號
submit
提交表單
我們把“百度一下”的操作從click 換成submit :
#coding=utf-8from 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的情境。他們之間到底有啥區別,知道的同學請留言告訴我。