1. 程式人生 > >Python3-Selenium自動化測試框架(二)之selenium使用和元素定位

Python3-Selenium自動化測試框架(二)之selenium使用和元素定位

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()

7、xpath

8、css 選擇器

【完】