基於SeleniumIDE+Python+Edge瀏覽器進行web自動化測試


安裝Edge瀏覽器及Selenium IDE測試工具

這里使用的是Edge瀏覽器,大家可以使用自己的瀏覽器,不過拓展里要有Selenium IDE,否則無法進行后續操作

 

點擊鏈接下載並安裝Edge瀏覽器下載 Microsoft Edge Web 瀏覽器 | Microsoft

 

打開瀏覽器,點擊瀏覽器右側工具欄,點擊擴展

 

 

 

 

 

在點擊左側的獲取 Microsoft Edge 擴展,然后搜索“selenium”,選擇Selenium IDE安裝。

 

 

 

 

 

 

安裝之后可以在右上角看到Selenium IDE圖標。

 

 

 

 

 

使用Selenium IDE

首先打開Selenium IDE

 

 

 

 

 

創建項目

點擊create a new project,在彈出的頁面輸入項目名稱“test01

 

 

 

 

 

Selenium IDE界面說明

 

 

 

 

 

①運行所有:運行一個測試案例集中所有案例。

②運行:運行當前選定的測試案例。

③案例集列表。

④用來填寫被測試網站里的地址。

⑤當前選中命令對應參數。

⑥日志/參考。

⑦測試腳本。

⑧跳過當前指令。

⑨速度控制:控制案例的運行速度。

⑩設置斷點。

⑪暫停/恢復案例執行。

⑫錄制:點擊后可以記錄你對瀏覽器的操作。

 

Selenium IDE的簡單使用

錄制腳本

點擊右側REC即可開始錄制腳本。一般錄制完腳本后,需要在運行工具中重跑腳本測試,去掉一些無用或異常的測試命令。

 

 

 

結束錄制后,選擇用例test01右側的三個點即可彈出選擇列表。

 

 

 

 

導出腳本

導出可以選擇JavaJavaScriptpython等語言,這里我們以python為例

 

 

 

 

PyCharm中的配置

安裝PyCharm模塊selenium

 

 

 

 

 

 

 

 

PyCharm打開導出的python文件,源代碼如下:

 

# Generated by Selenium IDE

import pytest

import time

import json

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.support import expected_conditions

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

 

class TestTest01():

  def setup_method(self, method):

    self.driver = webdriver.Chrome()

    self.vars = {}

  

  def teardown_method(self, method):

    self.driver.quit()

  

  def test_test01(self):

    self.driver.get("https://www.baidu.com/")

    self.driver.set_window_size(1088, 816)

    self.driver.find_element(By.ID, "kw").send_keys("selenium")

    self.driver.find_element(By.ID, "kw").send_keys(Keys.ENTER)

 

 

 

 

去掉無用的腳本

 

 

添加瀏覽器驅動

l 先去瀏覽器設置里看一下自己的瀏覽器版本;

l 再下載對應的驅動;

l 修改瀏覽器驅動的路徑,后面路徑換成自己的路徑就可以了

l 最后運行程序就會自動打開瀏覽器進行相應的測試操作

 

 

 

 

 

使用Selenium進行Python開發

 

環境安裝

下載安裝selenium

pip install selenium -i https://mirrors.aliyun.com/pypi/simple/

瀏覽器創建

Selenium支持非常多的瀏覽器,如ChromeFirefoxEdge等,還有AndroidBlackBerry等手機端的瀏覽器。另外,也支持無界面瀏覽器PhantomJS

from selenium import webdriver

 

browser = webdriver.Chrome()

browser = webdriver.Firefox()

browser = webdriver.Edge()

browser = webdriver.PhantomJS()

browser = webdriver.Safari()

元素定位

webdriver 提供了一系列的元素定位方法,常用的有以下幾種:

定位一個元素

定位多個元素

含義

find_element_by_id

find_elements_by_id

通過元素id定位

find_element_by_name

find_elements_by_name

通過元素name定位

find_element_by_xpath

find_elements_by_xpath

通過xpath表達式定位

find_element_by_link_text

find_elements_by_link_tex

通過完整超鏈接定位

find_element_by_partial_link_text

find_elements_by_partial_link_text

通過部分鏈接定位

find_element_by_tag_name

find_elements_by_tag_name

通過標簽定位

find_element_by_class_name

find_elements_by_class_name

通過類名進行定位

find_elements_by_css_selector

find_elements_by_css_selector

通過css選擇器進行定位

注意:

1find_element_by_xxx找的是第一個符合條件的標簽,find_elements_by_xxx找的是所有符合條件的標簽。

2、根據IDCSS選擇器和XPath獲取,它們返回的結果完全一致。

3、另外,Selenium還提供了通用方法find_element(),它需要傳入兩個參數:查找方式By和值。實際上,它就是find_element_by_id()這種方法的通用函數版本,比如find_element_by_id(id)就等價於find_element(By.ID, id),二者得到的結果完全一致。

實例演示

假如有一個web頁面,通過前端工具查看到一個元素的屬性是這樣的。

<html

 <head

 <body link="#0000cc" 

 <a href="/" rel="external nofollow" onmousedown="return c({'fm':'tab','tab':'logo'})" 

 <form name="f" action="/s" 

  <span  </span

  <input name="wd" value="" maxlength="255" autocomplete="off" 

通過id定位:

dr.find_element_by_id("kw")

通過name定位:

dr.find_element_by_name("wd")

通過class name定位:

dr.find_element_by_class_name("s_ipt")

通過tag name定位:

dr.find_element_by_tag_name("input")

通過xpath定位,xpath定位有N種寫法,這里列幾個常用寫法:

dr.find_element_by_xpath("//*[@]")

dr.find_element_by_xpath("//*[@name='wd']")

dr.find_element_by_xpath("//input[@]")

dr.find_element_by_xpath("/html/body/form/span/input")

dr.find_element_by_xpath("//span[@]/input")

dr.find_element_by_xpath("//form[@]/span/input")

dr.find_element_by_xpath("//input[@ and @name='wd']")

通過css定位,css定位有N種寫法,這里列幾個常用寫法:

dr.find_element_by_css_selector("#kw")

dr.find_element_by_css_selector("[name=wd]")

dr.find_element_by_css_selector(".s_ipt")

dr.find_element_by_css_selector("html   body   form   span   input")

dr.find_element_by_css_selector("span.soutu-btn  input#kw")

dr.find_element_by_css_selector("form#form   span   input")

假如頁面上有如下一組文本鏈接

<a href="http://news.baidu.com" rel="external nofollow" name="tj_trnews" 新聞</a

<a href="http://www.hao123.com" rel="external nofollow" name="tj_trhao123" hao123</a

通過link text定位:

dr.find_element_by_link_text("新聞")

dr.find_element_by_link_text("hao123")

通過partial link text定位:

dr.find_element_by_partial_link_text("")

dr.find_element_by_partial_link_text("hao")

dr.find_element_by_partial_link_text("123")

控制瀏覽器

常用的控制瀏覽器操作的一些方法

方法

說明

set_window_size()

設置瀏覽器的大小

back()

控制瀏覽器后退

forward()

控制瀏覽器前進

refresh()

刷新當前頁面

clear()

清除文本

send_keys (value)

模擬按鍵輸入

click()

單擊元素

submit()

用於提交表單

get_attribute(name)

獲取元素屬性值

is_displayed()

設置該元素是否用戶可見

size

返回元素的尺寸

text

獲取元素的文本

 


免責聲明!

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



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