一、環境
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...