Python Selenium 部分API詳細使用方法(二)

**************************************************************************************************web

3、操做測試對象

通常來講,全部有趣的操做與頁面交互都將經過WebElement 接口,包括上一節中介紹的對象定位,
以及本節中須要介紹的常對象操做。
webdriver 中比較經常使用的操做元素的方法有下面幾個:學習

  • clear 清除元素的內容,若是能夠的話
  • send_keys 在元素上模擬按鍵輸入
  • click 單擊元素
  • submit 提交表單

例如:測試

driver.find_element_by_id("user_name").clear()
driver.find_element_by_id("user_name").send_keys("username")
driver.find_element_by_id("user_pwd").clear()
driver.find_element_by_id("user_pwd").send_keys("password")
driver.find_element_by_id("dl_an_submit").click()
#經過submit() 來提交操做
#driver.find_element_by_id("dl_an_submit").submit()
  • clear() 用於清除輸入框的默認內容
  • send_keys("xx") 用於在一個輸入框裏輸入xx 內容
  • click() 用於單擊一個按鈕、鏈接等
  • submit() 提交表單

一、WebElement 接口經常使用方法spa

WebElement 接口除了咱們前面介紹的方法外,它還包含了別一些有用的方法。下面,咱們例舉例幾
個比較有用的方法。orm

  • size #返回元素的尺寸
  • text #獲取元素的文本
  • get_attribute(name) #得到屬性值
  • is_displayed() #檢查該元素是否用戶可見

例如:對象

size=driver.find_element_by_id("kw").size#返回百度輸入框的寬高
text=driver.find_element_by_id("cp").text #返回百度頁面底部備案信息
#返回元素的屬性值,能夠是id、name、type 或元素擁有的其它任意屬性
attribute=driver.find_element_by_id("kw").get_attribute('type')
#返回元素的結果是否可見,返回結果爲True 或False
result=driver.find_element_by_id("kw").is_displayed()

**************************************************************************************************接口

4、鼠標事件

 

前面例子中咱們已經學習到能夠用 click()來模擬鼠標的單擊操做,而咱們在實際的 web 產品測試中發現,有關鼠標的操做,不僅僅只有單擊,有時候還要和到右擊,雙擊,拖動等操做,這些操做包含在ActionChains 類中。
ActionChains 類鼠標操做的經常使用方法:事件

  • context_click() 右擊
  • double_click() 雙擊
  • drag_and_drop() 拖動
  • move_to_element() 鼠標懸停在一個元素上
  • click_and_hold() 按下鼠標左鍵在一個元素上

一、右擊操做element

 

#引入 ActionChains 類
from selenium.webdriver.common.action_chains import ActionChains
...
#定位到要右擊的元素
right =driver.find_element_by_xpath("xx")
#對定位到的元素執行鼠標右鍵操做
ActionChains(driver).context_click(right).perform()

 

ActionChains 用於生成用戶的行爲;全部的行爲都存儲在 actionchains 對象中。經過 perform()執行存儲的行爲。
 get

二、鼠標雙擊操做

 

#引入 ActionChains 類
from selenium.webdriver.common.action_chains import ActionChains
...
#定位到要雙擊的元素
double =driver.find_element_by_xpath("xxx")
#對定位到的元素執行鼠標雙擊操做
ActionChains(driver).double_click(double).perform()

 

三、鼠標拖放操做

drag_and_drop(source, target)
在源元素上按下鼠標左鍵,而後移動到目標元素上釋放。
source: 鼠標按下的源元素。
target: 鼠標釋放的目標元素。

 

#引入 ActionChains 類
from selenium.webdriver.common.action_chains import ActionChains
...
#定位元素的原位置
element = driver.find_element_by_name("xxx")
#定位元素要移動到的目標位置
target = driver.find_element_by_name("xxx")
#執行元素的移動操做
ActionChains(driver).drag_and_drop(element, target).perform()

 

四、鼠標移動上元素上

 

#引入 ActionChains 類
from selenium.webdriver.common.action_chains import ActionChains
...
#定位到鼠標移動到上面的元素
above = driver.find_element_by_xpath("xxx")
#對定位到的元素執行鼠標移動到上面的操做
ActionChains(driver).move_to_element(above).perform()

 

五、按下鼠標左鍵

 

#引入 ActionChains 類
from selenium.webdriver.common.action_chains import ActionChains
...
#定位到鼠標按下左鍵的元素
left=driver.find_element_by_xpath("xxx")
#對定位到的元素執行鼠標左鍵按下的操做
ActionChains(driver).click_and_hold(left).perform()

**************************************************************************************************

5、鍵盤事件

from selenium.webdriver.common.keys import Keys #在使用鍵盤按鍵方法前須要先導入 keys 類包。

下面常常使用到的鍵盤操做:

  • send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace)
  • send_keys(Keys.SPACE) 空格鍵(Space)
  • send_keys(Keys.TAB) 製表鍵(Tab)
  • send_keys(Keys.ESCAPE) 回退鍵(Esc)
  • send_keys(Keys.ENTER) 回車鍵(Enter)
  • send_keys(Keys.CONTROL,'a') 全選(Ctrl+A)
  • send_keys(Keys.CONTROL,'c') 複製(Ctrl+C)
  • send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
  • send_keys(Keys.CONTROL,'v') 粘貼(Ctrl+V)

**************************************************************************************************

相關文章
相關標籤/搜索