Selenium+Webdriver部分操作(一)
阿新 • • 發佈:2018-12-14
- 清除文字
driver.find_element_by_id("kw").clear() # 呼叫clear()方法去清除
- 重新整理當前頁面
driver.refresh()
- 瀏覽器前進和後退操作
driver.back() # 從百度新聞後退到百度首頁
driver.forward() # 百度首頁前進到百度新聞
- 獲取瀏覽器版本號
-
List item
print(driver.capabilities[‘version’]) # 列印瀏覽器version的值
- 獲取當前頁面的URL
獲取當前URL有什麼用處呢,一般URL可以幫助我們判斷跳轉的頁面是否正確,或者URL中部分欄位可以作為我們自動化測試指令碼期待結果的一部分。
print (driver.current_url) # current_url 方法可以得到當前頁面的URL
- 獲取當前頁面的Title
取當前頁面的title,這個也可以作為測試結果的依據,通過得到的title和預期的值對比,可以支援我們判斷頁面跳轉正確
print (driver.title) # title方法可以獲取當前頁面的標題顯示的欄位
- 在瀏覽器中新開一個tab
我們知道在瀏覽器裡,我們按住 ctrl+ t 就可以新開啟一個tab。所以我們學習如何利用webdriver中send_key 的方法去觸發ctrl+t的效果。 主要是呼叫了keys模組下相關方法,可以通過這個方法,輸入任何一個鍵盤上支援的字元或者快捷鍵。
ele = driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't') # 觸發ctrl + t
點選單選按鈕-Radio Button
實際上,勾選一個單選按鈕,也就是呼叫元素方法click() 我們利用for語句遍歷這兩個單選按鈕,依次點選他們。
# coding=utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get('http://news.baidu.com') driver.implicitly_wait(8) for i in driver.find_elements_by_xpath("//*/input[@type='radio']"): i.click()
注意:
- 這裡我們第一次用到了find_elements,也就是找一組元素,返回的是一個列表
- 迴圈這個列表,點選所有的單選按鈕,這裡應該只有2個符合上面XPath定位方法的單選按鈕
點選複選框-CheckBox
driver.find_element_by_xpath("//*[@name='memberPass']").click()
如果有多個複選框,考慮用for迴圈,參考前面radio button的方法
自定義瀏覽器視窗大小
# coding=utf-8
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window() # 全屏
driver.get('https://www.baidu.com')
time.sleep(1)
print (driver.get_window_size())
driver.set_window_size(1280,800) # 解析度 1280*800
time.sleep(1)
print (driver.get_window_size())
driver.set_window_size(1024,768) # 解析度 1024*768
time.sleep(1)
print (driver.get_window_size())
獲取元素上的文字
error_mes = driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_8__error']").text
判斷元素是否顯示在頁面
driver.find_element_by_xpath("//*[@id='news']").is_displayed()
驗證控制元件是否被選中
driver.find_element_by_xpath("//*[@id='news']").is_selected()
獲取頁面元素的大小
search_btn = driver.find_element_by_id('su')
print (search_btn.size)
結果:{‘width’: 100.0, ‘height’: 36.0}
滑鼠右鍵
在Selenium中,有一個ActionChains模組支援,右鍵,滑鼠懸停,拖拽,雙擊等動作。我們可以通過鍵盤向下箭頭來選擇檢視影象這個選單,然後點選就可以達到目的。
# coding=utf-8
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com')
time.sleep(2)
element = driver.find_element_by_xpath("//*[@id='lg']/img")
actionChains = ActionChains(driver)
actionChains.context_click(element).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()
#actionChains.context_click(element).send_keys('i').perform()
注意: ActionChains下相關方法在當前的firefox不工作,這個是一個已知的bug。