python自動化之selenium

2021-10-23 19:23:56 字數 2094 閱讀 2699

一、環境

1、selenium

安裝:pip install selenium==版本號(==後可省略,預設安裝最新版本)

檢視:pip show selenium

解除安裝:pip  uninstall selenium             

2、瀏覽器驅動

以chrome為例:

國內可訪問)

windows:解壓後將驅動移動至chrome安裝目錄下和python安裝目錄下

mac:解壓後直接移動至/usr/local/bin目錄下

修改許可權:sudo chmod u+x,o+x  /usr/local/bin/chromedriver

檢查是否成功:chromedriver --version

3、測試**

import time

from selenium import webdriver

# 建立瀏覽器驅動

driver = webdriver.chrome()

# 開啟web頁面

driver.get(r"")

time.sleep(1)

# 關閉驅動

driver.quit()

二、元素定位(chrome可通過f12定位,firefox可通過firebug定位)

1、id(通過元素的id屬性定位,id一般情況下在當前頁面中是唯一)

例:driver.find_element_by_id(id)

2、name(通過元素的name屬性定位)

例:drivr.find_element_by_name(name)

3、class_name(通過元素的class屬性定位)

例:driver.find_element_by_class_name(class)

4、tag_name(通過元素的標籤名稱定位)

例:driver.find_element_by_tag_name("標籤名")

注:如果頁面中存在多個相同標籤,預設返回第乙個標籤元素。

5、link_text(定位超連結標籤)

注:link_text定位元素的內容必須為全部匹配

6、partial_link_text(定位超連結標籤)

注:可以使用精準或模糊匹配,如果有多個值,預設返回第乙個值

7、xpath(基於元素路徑定位)

driver.find_element_by_xpath()

絕對路徑:以單斜槓開頭逐級開始編寫,不能跳級。如:/html/body/div/p1/input

相對路徑:以雙斜槓開頭,雙斜槓後邊跟元素名稱,不知元素名稱可以使用*代替。如://input或者//*

路徑結合屬性:在xpath中,所有的屬性必須使用@符號修飾.如://*[@id='id值']

路徑結合邏輯://*[@id="id值" and @屬性='屬性值']

路徑結合層級://*[@id='父級id屬性值']/input

定位文字值等於***的元素://*[text()='***']

定位屬性包含***的元素://*[contains(@屬性,'***')]

定位屬性以***開頭的元素://*[starts-with(@屬性,'***')]

8、css定位(通過css選擇器工具進行定位)

driver.find_element_by_css_selector()

id選擇器                  #id  

class選擇器            .class

元素選擇器             element   如:input

屬性選擇器             [屬性名=屬性值]

層級選擇器              p>input 或者 p input  注:>與空格的區別,大於號必須為子元素,空格則不用

9、定位一組元素

driver.find_elements_by_***()

注:返回型別為列表

10、元素定位方法底層都是通過driver.find_element(by.***, 'value')實現

注:使用by類必須導包from selenium.webdriver.common.by import by

自動化測試 pycharm中匯入selenium

1.第一種方式,通過pycharm安裝,選單欄file settings 進入配置介面,如下圖所示 點選加號,在搜尋介面搜尋selenium 選擇對應的版本,點選安裝 2.第二種方式,python的pip命令安裝,命令 pip install selenium 3.1查詢對應的chrome瀏覽器版本...

Python自動化之sqlalchemy

如果該數 據庫支援 自增列 則 sqlalchemy 預設 自動 設定 表中第乙個 型別 為整形 的主鍵 為自增列 orm的優點 隱藏了資料訪問細節,封閉 的通用資料庫互動,orm的核心。他使得我們的通用資料庫互動變得簡單易行,並且完全不用考慮該死的sql語句。快速開發,由此而來。orm使我們構造固...

python之requests介面自動化

在進行介面自動化測試時,有好多介面都基於登陸介面的響應值來關聯進行操作的,在次之前試了很多方法,都沒有成功,其實很簡單用session來做。coding utf 8 import requests 在登陸模組建立乙個全域性session,在其他介面操作時帶入登陸時的session,保持session...