Python3-Selenium自動化測試框架(二)之selenium使用和元素定位
阿新 • • 發佈:2020-01-09
Selenium自動化測試框架(二)之selenium使用和元素定位
(一)selenium的簡單使用
1、導包
from selenium import webdriver
2、初始化瀏覽器
# 驅動在python環境中
browser = webdriver.Chrome()
# 驅動不放在python環境中,新增executable_path關鍵字
browser = webdriver.Chrome(executable_path=r"D:\chromedriver.exe")
3、開啟網址
browser.get("http://www.baidu.com")
4、對瀏覽器的一些簡單操作
# ------------------獲取瀏覽器資訊---------------- # 獲取網址 browser.current_url # 獲取網頁標題 browser.title # 獲取網頁中的原始碼 browser.page_source # 獲取所有的視窗,所有的標籤頁(list型別) browser.window_handles # 獲取現在正處於的標籤頁, 返回的是視窗控制代碼(視窗ID) browser.current_window_handle # ------------------瀏覽器動作-------------------- # 最大化視窗 browser.maximize_window() # 最小化視窗 browser.minimize_window() # 設定視窗的大小,引數為:長寬,單位:畫素 browser.set_window_size(800, 600) # 重新整理 browser.refresh() # 後退 browser.back() # 前進 browser.forward()
5、關閉標籤頁和瀏覽器
# 關閉標籤頁
browser.close()
# 關閉瀏覽器
browser.quit()
(二)元素定位(百度為例)
- 在python中模擬點點點,實際上就是通過在 HTML 當中去找到需要操作的元素(標籤)進行模擬操作
- find_element_by_...:返回的是一個WebElement物件,如果有多個值也只會返回第一個值
- find_elements_by_...:返回的是一個WebElement物件list列表,不管有多少個值都返回的列表(可以通過索引獲取你需要的哪一個)
- send_keys("內容"):輸入內容
- click():單擊
- 在python中通過元素的特徵進行查詢元素,根據id屬性查詢(id具有唯一性)
注意點:
- id屬性可能會是動態變化的。
- 如果id中包含數字,那麼這個id屬性你要小心了,很大可能是動態變化的。
- 像那種拼音單詞之類的,一般情況下是不可變的id。
* 以下用的都是:find_element_by_...
1、根據ID屬性進行定位,查詢到的是一個WebElement物件
input_element = browser.find_element_by_id("kw")
print(input_element)
# 輸入內容
input_element.send_keys("Python")
2、根據name屬性進行定位
element = browser.find_element_by_name("wd")
print(element)
3、根據class屬性進行定位
e = browser.find_element_by_class_name("s_ipt")
print(e)
4、通過tagname(標籤名稱)進行定位。查詢到的元素不具備唯一性
e = browser.find_element_by_tag_name("a")
print(e)
5、定位a標籤超連結
e = browser.find_element_by_link_text('新聞')
# 點選連結
e.click()
6、定位a標籤超連結,模糊定位
e = browser.find_element_by_partial_link_text('新')
e.click()