一、操作測(cè)試對(duì)象
一般來(lái)說(shuō),所有有趣的操作與頁(yè)面交互都將通過(guò)WebElement 接口,包括上一節(jié)中介紹的對(duì)象定位,以及本節(jié)中需要介紹的常對(duì)象操作。
webdriver 中比較常用的操作元素的方法有下面幾個(gè):
clear 清除元素的內(nèi)容,如果可以的話
send_keys 在元素上模擬按鍵輸入
click 單擊元素
submit 提交表單
下面以登錄360中心為例來(lái)展示常用操作的使用
fromseleniumimportwebdriver
importtime
driver = webdriver.Firefox()
driver.get("https://i.#/login?destUrl=https%3A%2F%2Fi.#%2F")
driver.find_element_by_name("account").clear()
driver.find_element_by_name("account").send_keys("username")
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys("password")
driver.find_element_by_xpath(".//*[@id='loginWrap']/div[1]/div/div/div[2]/form/p[5]/input").click()
# driver.find_element_by_xpath(".//*[@id='loginWrap']/div[1]/div/div/div[2]/form/p[5]/input").submit()
time.sleep(30)
driver.quit()
1、首先,通過(guò)firebug和firepath定位元素,用戶名輸入框、密碼輸入框以及登錄按鈕
2、clear() ?? 用于清除輸入框的默認(rèn)內(nèi)容
? ? 比如登錄框內(nèi)一般默認(rèn)會(huì)有“賬號(hào)”“密碼”等提示信息,如果直接輸入內(nèi)容,和可能會(huì)與輸入框的默認(rèn)提示信息拼接,從而造成輸入信息的錯(cuò)誤;這時(shí)clear()將變得非常有用。
3、send_keys()?? 向輸入框輸入內(nèi)容
python 是個(gè)容易出現(xiàn)編碼問(wèn)題的語(yǔ)言,有時(shí)候當(dāng)我們?cè)趕end_keys()方法中輸入中文時(shí),然后腳本在運(yùn)行時(shí)就報(bào)編碼錯(cuò)誤,這個(gè)時(shí)候我們可以在腳本開(kāi)頭聲明編碼為utf-8,然后在中文字符的前面加個(gè)小u 就解決了(表示轉(zhuǎn)成python Unicode 碼):??????????????????????????????????????????????????????????
#coding=utf-8
send_keys(u"中文內(nèi)容")
4、click() 用于單擊一個(gè)按鈕
其實(shí)click()方法不僅僅用于點(diǎn)擊一個(gè)按鈕,可以單擊任何可以點(diǎn)擊的元素,文字/圖片連接,按鈕,下拉按鈕等。
5、submit() 提交表單
從上面有例子,我們可看到可以使用submit()方法來(lái)代替click()對(duì)輸入的信息進(jìn)行提交,在有些情況下兩個(gè)方法可以相互使用;submit()要求提交對(duì)象是一個(gè)表單,更強(qiáng)調(diào)對(duì)信息的提交。click()更強(qiáng)調(diào)事件的獨(dú)立性。(比如,一個(gè)文字鏈接就不能用submit()方法。)
二、WebElement 接口常用方法
1、size? 返回元素的尺寸
2、text? 獲取元素的文本信息
3、get_attribute(name) 獲取元素的屬性值
4、is_displayed() 該元素是否用戶可見(jiàn)????????????????????????????????????????????????????????????????????????????????????

