❤️❤️建議收藏!!保姆級Python+Selenium自動化入門資料,學不會,來找我!!持續更新❤️❤️


在這里插入圖片描述
@

前言

  • 本章內容需有一定Python基礎,如何不懂的,請先學習Python。

什么??沒有好的學習資料,給你准備好了!!

Web自動化環境搭建

軟件准備

  • python64位安裝包
  • chrome64位瀏覽器&驅動
  • 瀏覽器驅動下載
  • 注意:chromedriver與chrome版本要對應。具體可查看該對應表
  • 另外:本文主要以chromedirver為例

開始環境搭建

  安裝python:雙擊自定義安裝 或者 在cmd中輸入python-3.7.0-amd64.exe的路徑,即在電腦中存放的位置,回車即可彈出安裝頁面,勾選Add Python 3.7 to PATH,即自動配置環境變量。

如圖:
在這里插入圖片描述
下圖顯示安裝成功:
在這里插入圖片描述

  • 注:可以查看系統環境變量,發現D:\My pyhton3.7.0\Scripts;D:\My pyhton3.7.0;已經自動添加到了path中,這就是勾選Add Python 3.7 to PATH的效果.
    img
    python安裝完成后可以在cmd界面輸入python,會出現下圖內容,說明python安裝成功
    img
  1. 安裝selenium:
  • 在cmd中運行pip install selenium 即可在線安裝selenium,(ps:安裝指定的版本可用pip install selenium==3.14.0)如圖提示selenium安裝成功。
    img
  • 使用pip show selenium 查看selenium版本信息
  1. 安裝chrome瀏覽器
    ​ 該處使用谷歌瀏覽器64位的版本號為70.0.3538.67
  2. 將chromedriver.exe放到python的安裝目錄下(或者目錄下的scripts下)
    img
    以上5步就搭建好python+selenium環境了

瀏覽器基本操作

前言

 開始自動化測試之前,需了解瀏覽器的一些基本操作,以方便后續的自動測試。碼上開始吧!

導入Selenium模塊

from selenium import webdriver

瀏覽器基本操作

  • 打開網站
#! /usr/bin/python3
# @Author : 一凡

from selenium import webdriver

url = "http://localhost:8080/Shopping/index.jsp"
# 也可以用其它瀏覽器:比如Firefox()等等
brower = webdriver.Chrome()
# 打開瀏覽器
brower.get(url)
  • 設置休眠
#! /usr/bin/python3
# @Author : 一凡

from selenium import webdriver
import time

url = "http://localhost:8080/Shopping/index.jsp"
webdriver.Firefox
brower = webdriver.Chrome()
brower.get(url)
# 強制等待3秒
time.sleep(3)
  • 頁面刷新
#! /usr/bin/python3
# @Author : 一凡

from selenium import webdriver

url = "http://localhost:8080/Shopping/index.jsp"
webdriver.Firefox
brower = webdriver.Chrome()
brower.get(url)
# 刷新頁面
brower.refresh()
  • 前進和后退
#! /usr/bin/python3
# @Author : 一凡

from selenium import webdriver
import time

url = "http://localhost:8080/Shopping/index.jsp"
webdriver.Firefox
brower = webdriver.Chrome()
brower.get(url)
# 實際效果自己操作,當前就不做演式了
# 后退
brower.back()
# 前
brower.forward()
  • 設置窗口大小
#! /usr/bin/python3
# @Author : 一凡

from selenium import webdriver
import time

url = "http://localhost:8080/Shopping/index.jsp"
webdriver.Firefox
brower = webdriver.Chrome()
brower.get(url)
# 設置窗口大小
brower.set_window_size(1280, 720)
# 設置全屏
# brower.maximize_window()
  • 截屏
#! /usr/bin/python3
# @Author : 一凡

from selenium import webdriver
import time

url = "http://localhost:8080/Shopping/index.jsp"
webdriver.Firefox
brower = webdriver.Chrome()
brower.get(url)
brower.get_screenshot_as_file("./test.png")
# 退出瀏覽器進程
brower.quit()
  • 退出
#! /usr/bin/python3
# @Author : 一凡

from selenium import webdriver
import time

url = "http://localhost:8080/Shopping/index.jsp"
webdriver.Firefox
brower = webdriver.Chrome()
brower.get(url)
time.sleep(3)
# 退出瀏覽器進程
brower.quit()

為什么要學習定位

  • 讓程序操作指定元素,就必須先找到此元素;
  • 程序不像人類用眼睛直接定位到元素;
  • webDriver提供了八種定位元素的方式。
    在這里插入圖片描述
  • 定位總結
    • id、name、class_name、tag_name:根據元素的標簽或元素的屬性來進行定位
    • link_text、partial_link_text:根據超鏈接的文本來進行定位(a標簽)
    • xpath:為元素路徑定位--重點
    • css:為css選擇器定位(樣式定位)

常見定位方式

id

# -*- coding:utf-8 -*-
# @Author  : 一凡

from selenium import webdriver
import time

url = "https://www.baidu.com/"
driver = webdriver.Chrome()
driver.get(url)
driver.find_element_by_id("kw").send_keys("好好學習|天天向上")
driver.find_element_by_id("su").click()
time.sleep(3)
driver.quit()

name

  • 說明:HTML規定name屬性來指定元素名稱,name定位就是根據name屬性來定位
  • 前提:元素有name屬性
  • name定位方法:find_element_by_name()
  • 實現案例-2需求:打開百度(https://www.baidu.com/),通過name定位
# -*- coding:utf-8 -*-
# @Author  : 一凡

from selenium import webdriver
import time

url = "https://www.baidu.com/"
driver = webdriver.Chrome()
driver.get(url)
driver.find_element_by_name("wd").send_keys("好好學習|天天向上")
driver.find_element_by_id("su").click()
time.sleep(3)
driver.quit()

class_name

  • 說明:HTML規定class來指定元素的類名,class定位就是根據class屬性來定位,用法和name,id類似。
  • 前提:元素有class屬性
  • class_name定位方法:find_element_by_class_name()
  • 實現案例-3需求:打開百度界面(https://www.baidu.com/),通過class定位
# -*- coding:utf-8 -*-
# @Author  : 一凡

from selenium import webdriver
import time

url = "https://www.baidu.com/"
driver = webdriver.Chrome()
driver.get(url)
driver.find_element_by_class_name("s_ipt").send_keys("好好學習|天天向上")
driver.find_element_by_id("su").click()
time.sleep(3)
driver.quit()

tag_name

# -*- coding:utf-8 -*-
# @Author  : 一凡

from selenium import webdriver
import time

# 這里使用優設導航的百度搜索界面
# 獲取瀏覽器對象
driver = webdriver.Chrome()
# 獲取網絡鏈接
url = "https://hao.uisdc.com/"
driver.get(url)
time.sleep(3)
# 獲取搜索輸入框,輸入:優設導航的百度搜索
driver.find_element_by_tag_name("input").send_keys("優設導航的百度搜索")
# 暫停3秒
time.sleep(3)
# 退出瀏覽器驅動
driver.quit()
# -*- coding:utf-8 -*-
# @Author  : 一凡

from selenium import webdriver
import time

url = "https://www.baidu.com/"
driver = webdriver.Chrome()
driver.get(url)
driver.find_element_by_link_text("新聞").click()
time.sleep(3)
driver.quit()
  • 說明:partial_link_text定位是對link_text定位的補充,partial_link_text為模糊匹配;link_text為全部匹配。
  • 前提:定位的元素是鏈接標簽(a標簽)
  • partial_link_text定位方法:find_element_by_partial_link_text()
  • 通過傳入a標簽局部文本或全部文本來定位元素,要求輸入的文本能夠唯一找到這個元素
  • 實現案例-6需求:打開百度新聞(http://news.baidu.com/),通過partial_link_text定位任何一條新聞,並進行點擊操作
# -*- coding:utf-8 -*-
# @Author  : 一凡

from selenium import webdriver
import time

url = "http://news.baidu.com/"
driver = webdriver.Chrome()
driver.get(url)
driver.find_element_by_partial_link_text("守護藍色地球").click()
time.sleep(3)
# driver.quit()

元素組

  • 元素組定位方式:find_elements_by_xxx
    作用:
    • 查找返還定位所有符合條件的元素
    • 返還的定位元素格式為列表格式
      說明:
    • 列表數據格式的讀取需要指定下標(下標從0開始)
    • 案例要求:打開百度頁面https://www.baidu.com/,通過元素組定位
      在這里插入圖片描述
    • 定位:"//*[@id='s-top-left']/a"
# -*- coding:utf-8 -*-
# @Author  : 一凡

from selenium import webdriver

url = "https://www.baidu.com/"
driver = webdriver.Chrome()
driver.get(url)
path  = "//*[@id='s-top-left']/a"
elements = driver.find_elements_by_xpath(path)
# 返回列表
print(len(elements))
# 通過列表方法獲取相應的元素進行點擊
elements[0].click()

如果想學習軟件測試,就快加入:893694563,群內學軟件測試,分享技術和學習資料,陪你一起成長和學習。

碼字不易,小伙伴如果看到最后,煩請來個三連,謝謝拉~
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM