国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

這篇具有很好參考價(jià)值的文章主要介紹了【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

?目錄

前言

使用場(chǎng)景

原理

環(huán)境準(zhǔn)備

?開發(fā)

First Script

WebDriver API

瀏覽器

元素

總結(jié)


前言

Selenium是一款可以自動(dòng)化操作瀏覽器的開源項(xiàng)目,最初的目的是瀏覽器功能的自動(dòng)化測(cè)試,但是隨著項(xiàng)目的發(fā)展,人們根據(jù)它的特性也用來(lái)做一些更多的有意思的功能而不僅僅是UI的自動(dòng)化測(cè)試工具。就像Selenium官方網(wǎng)站上描述的那樣,Selenium可以自動(dòng)化操縱瀏覽器。完了!你想用它的能力做什么事情完全取決于你。

使用場(chǎng)景

針對(duì)瀏覽器的自動(dòng)化測(cè)試有三個(gè)場(chǎng)景:

  • Selenium WebDriver:如果您想創(chuàng)建健壯的、基于瀏覽器的回歸自動(dòng)化套件和測(cè)試、在許多環(huán)境中擴(kuò)展和分發(fā)腳本,那么您需要使用 Selenium WebDriver,它是一組特定于語(yǔ)言的綁定來(lái)驅(qū)動(dòng)瀏覽器——這就是它的本意驅(qū)動(dòng)的
  • Selenium IDE:如果您想創(chuàng)建快速的錯(cuò)誤重現(xiàn)腳本,創(chuàng)建腳本以幫助自動(dòng)化輔助探索性測(cè)試,那么您想使用 Selenium IDE; Chrome、Firefox 和 Edge 插件,可以對(duì)與瀏覽器的交互進(jìn)行簡(jiǎn)單的記錄和回放
  • Selenium Grid:如果您想通過(guò)在多臺(tái)機(jī)器上分發(fā)和運(yùn)行測(cè)試來(lái)擴(kuò)展并從一個(gè)中心點(diǎn)管理多個(gè)環(huán)境,從而可以輕松地針對(duì)大量瀏覽器/操作系統(tǒng)組合運(yùn)行測(cè)試,那么您需要使用 Selenium Grid

原理

早期的Selenium目的是實(shí)現(xiàn)web應(yīng)用的UI自動(dòng)化測(cè)試,實(shí)現(xiàn)方式是通過(guò)三方的服務(wù)器注入js達(dá)到控制瀏覽器行為的目的,核心的組件叫Selenium-RC(Remote Control) 包含兩個(gè)部分:

  • 客戶端側(cè)的編寫控制瀏覽器邏輯的庫(kù)
  • 實(shí)現(xiàn)控制瀏覽器啟動(dòng)和關(guān)閉的服務(wù)器

架構(gòu)如下?

【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

??這種架構(gòu)被證明是復(fù)雜的,而且有諸多限制,比如:

  • 復(fù)雜的架構(gòu)
  • 執(zhí)行測(cè)試腳本非常耗時(shí),因?yàn)?Selenium RC 使用 JavaScript 命令作為瀏覽器的指令。這會(huì)導(dǎo)致性能下降
  • API不太面向?qū)ο?/li>
  • 不支持 Headless HTMLUnit 瀏覽器(不可見(jiàn)的瀏覽器)

Selenium RC 的局限性導(dǎo)致了新的自動(dòng)化框架 Selenium WebDriver 的開發(fā)。在 2006 年引入 WebDriver 后,RC 中出現(xiàn)的復(fù)雜問(wèn)題可以得到解決和解決 Selenium 結(jié)合WebDriver簡(jiǎn)化了瀏覽器的控制行為,將中間環(huán)節(jié)的服務(wù)器去掉,直接在系統(tǒng)層級(jí)本地化控制瀏覽器,優(yōu)化后的架構(gòu)如下:?

【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

環(huán)境準(zhǔn)備

如果你不想在編碼層實(shí)現(xiàn)你的功能,可以下載Selenium IDE插件,支持錄制回放,過(guò)程腳本導(dǎo)出。?

【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

?如果需要通過(guò)代碼實(shí)現(xiàn)更多靈活自定義功能,建議使用python,環(huán)境準(zhǔn)備 python3、pip3

brew install python3

selenium

pip3 install selenium

install browser drivers 設(shè)置您的系統(tǒng)以允許瀏覽器自動(dòng)化。 通過(guò) WebDriver,Selenium 支持市場(chǎng)上所有主流瀏覽器,例如 Chrome/Chromium、Firefox、Internet Explorer、Edge、Opera 和 Safari。在可能的情況下,WebDriver 使用瀏覽器的內(nèi)置自動(dòng)化支持來(lái)驅(qū)動(dòng)瀏覽器?

【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

?開發(fā)

First Script

通過(guò)webdriver實(shí)現(xiàn)控制瀏覽器自動(dòng)訪問(wèn)功能

def test_eight_components():
    driver = webdriver.Chrome()
    
    driver.get("https://google.com")
    
    title = driver.title
    assert title == "Google"
    
    driver.implicitly_wait(0.5)
    
    search_box = driver.find_element(by=By.NAME, value="q")
    search_button = driver.find_element(by=By.NAME, value="btnK")
    
    search_box.send_keys("Selenium")
    search_button.click()
    
    search_box = driver.find_element(by=By.NAME, value="q")
    value = search_box.get_attribute("value")
    assert value == "Selenium"
    
    driver.quit()

WebDriver API

webDriver操縱瀏覽器的API大致可以分為兩個(gè)部分,控制瀏覽器行為的比如,打開、關(guān)閉、前進(jìn)、后退、刷新等和控制頁(yè)面元素的如,點(diǎn)擊、輸入、獲取元素內(nèi)容等

瀏覽器

獲取瀏覽器信息

// title driver.getTitle(); // url driver.getCurrentUrl();

導(dǎo)航

//打開
driver.get("https://selenium.dev");

//跳轉(zhuǎn)
driver.navigate().to("https://selenium.dev");

// 后退
driver.navigate().back();

// 前進(jìn)
driver.navigate().forward();

// 刷新
driver.navigate().refresh();

彈框

//根據(jù)條件找到頁(yè)面中的彈框并點(diǎn)擊
driver.findElement(By.linkText("See an example alert")).click();

//等待彈框展示并保存到變量中
Alert alert = wait.until(ExpectedConditions.alertIsPresent());

//獲得彈框內(nèi)容文本
String text = alert.getText();

//點(diǎn)擊確定按鈕
alert.accept();

Alert、Confirm、Prompt功能類似?Cookies?可以支持cookies的添加刪除操作

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;

public class addCookie {
    public static void main(String[] args) {
        WebDriver driver = new ChromeDriver();
        try {
            driver.get("http://www.example.com");

            // Adds the cookie into current browser context
            driver.manage().addCookie(new Cookie("key", "value"));
        } finally {
            driver.quit();
        }
    }
}

Frames?支持針對(duì)Frames內(nèi)元素的獲取及操作?Windows?WebDriver 不區(qū)分窗口和選項(xiàng)卡。如果您的站點(diǎn)打開一個(gè)新選項(xiàng)卡或窗口,Selenium 將允許您使用窗口句柄來(lái)處理它。每個(gè)窗口都有一個(gè)唯一標(biāo)識(shí)符,該標(biāo)識(shí)符在單個(gè)會(huì)話中保持不變。您可以使用以下方法獲取當(dāng)前窗口的窗口句柄:

driver.getWindowHandle();

元素

識(shí)別和使用DOM中的元素 大多數(shù)人的 Selenium 代碼大部分都涉及使用 Web 元素。這部分功能和寫前端代碼的document.getElementById作用差不多,思想比較簡(jiǎn)單,就是找到頁(yè)面中的元素然后執(zhí)行模擬用戶行為的操作 支持絕對(duì)定位和相對(duì)定位的策略,針對(duì)復(fù)雜頁(yè)面ID,Tag,Class不好定位的情況可以使用xPath方式,非常靈活,其實(shí)也不用死記硬背,當(dāng)某元素不好定位時(shí),可以去官網(wǎng)查API的方式去實(shí)現(xiàn)

相對(duì)定位

【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

def relative():
    # Above
    email_locator = locate_with(By.TAG_NAME, "input").above({By.ID: "password"})
    # Below
    password_locator = locate_with(By.TAG_NAME, "input").below({By.ID: "email"})
    # Left of
    cancel_locator = locate_with(By.TAG_NAME, "button").to_left_of({By.ID: "submit"})
    # Right of
    submit_locator = locate_with(By.TAG_NAME, "button").to_right_of({By.ID: "cancel"})
    # Near
    email_locator = locate_with(By.TAG_NAME, "input").near({By.ID: "lbl-email"})
    # Chaining relative locators
    submit_locator = locate_with(By.TAG_NAME, "button").below({By.ID: "email"}).to_right_of({By.ID: "cancel"})

傳統(tǒng)定位

<ol id="vegetables" style="margin-top: 20px">
      <li class="potatoes">potatoes</li>
      <li class="onions">onions</li>
      <li class="tomatoes"><span>Tomato is a Vegetable</span></li>
    </ol>
    <ul id="fruits">
      <li class="bananas"></li>
      <li class="apples"></li>
      <li class="tomatoes"><span>Tomato is a Fruit</span></li>
     </ul>

def finders():
    # Evaluating entire DOM
    vegetable = driver.find_element(By.CLASS_NAME, "tomatoes")
    print(vegetable)
    # Evaluating a subset of the DOM
    fruits = driver.find_element(By.ID, "fruits")
    fruit = fruits.find_elements(By.CLASS_NAME, "tomatoes")
    print(fruit)
    # Optimized locator
    fruit = driver.find_element(By.CSS_SELECTOR, "#fruits .tomatoes")
    fruit2 = driver.find_element(By.CSS_SELECTOR, "ul .tomatoes")
    print(fruit == fruit2) # True
    # All matching elements
    plants = driver.find_elements(By.TAG_NAME, "li")
    print(plants)
    # Get all the elements available with tag name 'p'
    elements = driver.find_elements(By.TAG_NAME, 'span')
    for e in elements:
        print(e.text)


def xPath():
    ol = driver.find_element(By.XPATH, "/html/body/div/div/ol[1]")
    ol2 = driver.find_element(By.XPATH, "http://ol[1]")
    ol3 = driver.find_element(By.XPATH, "http://ol[@id='vegetables']")
    print(ol == ol2) # True
    print(ol == ol3) # True
    onions = driver.find_element(By.XPATH, "http://ol[1]/li[2]")
    print(onions.text)

交互?5種基本命令:

  • click(任意元素)
  • send keys(僅用于文本塊和內(nèi)容可編輯元素)
  • clear(同上)
  • submit (form 元素)
  • select (選擇列表元素)

獲取元素信息?

【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

總結(jié)

本次分享介紹了Selenium使用場(chǎng)景,簡(jiǎn)單原理和一些的基礎(chǔ)用法。并列舉了一個(gè)小例子。掌握以上內(nèi)容,你已經(jīng)可以實(shí)現(xiàn)基本的UI自動(dòng)化測(cè)試了。另外可以做一些爬蟲和自動(dòng)化操縱瀏覽器的工具需求就需要根據(jù)個(gè)人場(chǎng)景化定制了,只要你有“懶”的天性,相信一定會(huì)找到挺多有意思場(chǎng)景使用去使用它。


-事必有法,然后有成- 最后祝大家早日達(dá)到測(cè)試的天花板!

如果你不想一個(gè)人野蠻生長(zhǎng),找不到系統(tǒng)的資料,問(wèn)題得不到幫助,堅(jiān)持幾天便放棄的感受的話,可以加入我們的Q:321255410,或是點(diǎn)擊下方小卡片添加即可,大家可以一起討論交流,里面會(huì)有各種軟件測(cè)試資料和技術(shù)交流。

【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化

今天主要是和大家分享我的一些學(xué)習(xí)經(jīng)驗(yàn)和網(wǎng)盤學(xué)習(xí)資源,后續(xù)我會(huì)繼續(xù)分享一些相關(guān)測(cè)試資料,有被幫助到的朋友,大家可以點(diǎn)贊支持一下~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-480308.html

到了這里,關(guān)于【軟件測(cè)試/自動(dòng)化測(cè)試】WebDriver+Selenium實(shí)現(xiàn)瀏覽器自動(dòng)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【軟件測(cè)試】python+selenium自動(dòng)化測(cè)試

    【軟件測(cè)試】python+selenium自動(dòng)化測(cè)試

    一、什么是自動(dòng)化測(cè)試 自動(dòng)化測(cè)試指軟件測(cè)試的自動(dòng)化,在預(yù)設(shè)狀態(tài)下運(yùn)行應(yīng)用程序或者系統(tǒng),預(yù)設(shè)條件包括正常和異常,最 后評(píng)估運(yùn)行結(jié)果。將人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的過(guò)程。 單元測(cè)試 java的單元測(cè)試框架是Junit,在這里不再贅述。 接口自動(dòng)化 接口測(cè)試就是

    2023年04月09日
    瀏覽(34)
  • 軟件測(cè)試(五)自動(dòng)化 selenium

    軟件測(cè)試(五)自動(dòng)化 selenium

    自動(dòng)化測(cè)試指軟件測(cè)試的自動(dòng)化,在預(yù)設(shè)狀態(tài)下運(yùn)行應(yīng)用程序或者系統(tǒng),預(yù)設(shè)條件包括正常和異常,最后評(píng)估運(yùn)行結(jié)果。將人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器(代碼)執(zhí)行的過(guò)程。(簡(jiǎn)單而言其實(shí)就是降低重復(fù)性的工作(大部分是Python)) 自動(dòng)化測(cè)試的具體實(shí)現(xiàn),應(yīng)該是包含下

    2024年02月08日
    瀏覽(31)
  • python+selenium自動(dòng)化軟件測(cè)試 :多線程

    python+selenium自動(dòng)化軟件測(cè)試 :多線程

    運(yùn)行多個(gè)線程同時(shí)運(yùn)行幾個(gè)不同的程序類似,但具有以下優(yōu)點(diǎn): 進(jìn)程內(nèi)共享多線程與主線程相同的數(shù)據(jù)空間,如果他們是獨(dú)立的進(jìn)程,可以共享信息或互相溝通更容易. 線程有時(shí)稱為輕量級(jí)進(jìn)程,他們并不需要多大的內(nèi)存開銷,他們關(guān)心的不是過(guò)程便宜. 一個(gè)線程都有一個(gè)開始

    2024年02月16日
    瀏覽(37)
  • 軟件測(cè)試/測(cè)試開發(fā)丨Selenium Web自動(dòng)化測(cè)試基本操作

    本文為霍格沃茲測(cè)試開發(fā)學(xué)社學(xué)員學(xué)習(xí)筆記分享 原文鏈接:https://ceshiren.com/t/topic/26901 模擬功能測(cè)試中對(duì)瀏覽器的操作 get方法打開瀏覽器 refresh方法刷新頁(yè)面 用back方法回退到上一個(gè)界面 maximize_window方法使窗口最大化 minimize_window方法使窗口最小化 標(biāo)簽: a 屬性:href 類屬性

    2024年02月10日
    瀏覽(32)
  • 軟件測(cè)試/測(cè)試開發(fā)丨Selenium Web自動(dòng)化測(cè)試 高級(jí)控件交互方法

    本文為霍格沃茲測(cè)試開發(fā)學(xué)社學(xué)員學(xué)習(xí)筆記分享 原文鏈接:https://ceshiren.com/t/topic/27045 使用場(chǎng)景 對(duì)應(yīng)事件 復(fù)制粘貼 鍵盤事件 拖動(dòng)元素到某個(gè)位置 鼠標(biāo)事件 鼠標(biāo)懸停 鼠標(biāo)事件 滾動(dòng)到某個(gè)元素 滾動(dòng)事件 使用觸控筆點(diǎn)擊 觸控筆事件(了解即可) https://www.selenium.dev/documentati

    2024年02月09日
    瀏覽(62)
  • 自動(dòng)化測(cè)試工具Selenium的基本使用方法,軟件測(cè)試基礎(chǔ)

    自動(dòng)化測(cè)試工具Selenium的基本使用方法,軟件測(cè)試基礎(chǔ)

    browser.find_element(By.ID,‘kw’).send_keys(“美女”) browser.find_element_by_id(‘kw’).send_keys(‘性感’) 2.通過(guò)標(biāo)簽name屬性進(jìn)行定位 browser.find_element_by_name(“wd”).send_keys(“Linux”) browser.find_element(By.NAME,‘wd’).send_keys(“美女”) 3.通過(guò)標(biāo)簽名進(jìn)行定位 browser.find_element_by_tag_name(“input”).

    2024年04月22日
    瀏覽(97)
  • 軟件測(cè)試自動(dòng)化Java篇【Selenium+Junit 5】

    軟件測(cè)試自動(dòng)化Java篇【Selenium+Junit 5】

    為什么選擇selenium作為我們的web自動(dòng)化測(cè)試工具? 開源免費(fèi) 支持多瀏覽器 支持多系統(tǒng) 支持多語(yǔ)言【Java,Python,C#,Rubby,JavaScript,Kolin】 selenium包提供了很多可供測(cè)試使用的API Chrome瀏覽器 Chrome驅(qū)動(dòng)【驅(qū)動(dòng)器版本要和瀏覽器版本對(duì)應(yīng)越詳細(xì)越好】 然后把驅(qū)動(dòng)包放在安裝jdk的

    2024年01月18日
    瀏覽(45)
  • 軟件測(cè)試/測(cè)試開發(fā)丨Selenium Web自動(dòng)化多瀏覽器處理

    軟件測(cè)試/測(cè)試開發(fā)丨Selenium Web自動(dòng)化多瀏覽器處理

    本文為霍格沃茲測(cè)試開發(fā)學(xué)社學(xué)員學(xué)習(xí)筆記分享 原文鏈接:https://ceshiren.com/t/topic/27185 用戶使用的瀏覽器(firefox,chrome,IE 等) web 應(yīng)用應(yīng)該能在任何瀏覽器上正常的工作,這樣能吸引更多的用戶來(lái)使用 是跨不同瀏覽器組合驗(yàn)證網(wǎng)站或 web 應(yīng)用程序功能的過(guò)程 是兼容性測(cè)試的一個(gè)

    2024年02月09日
    瀏覽(28)
  • 軟件測(cè)試——功能測(cè)試,使用Java,IDEA,Selenium進(jìn)行web自動(dòng)化測(cè)試

    軟件測(cè)試——功能測(cè)試,使用Java,IDEA,Selenium進(jìn)行web自動(dòng)化測(cè)試

    視頻地址:03-web元素定位ID_嗶哩嗶哩_bilibili p1.下載jdk,maven,idea p2.配置java-selenium環(huán)境正式開始: (1)創(chuàng)建代碼: (2)第一次運(yùn)行會(huì)報(bào)錯(cuò):要下載東西? (3) Windows系統(tǒng)的輸入如下: ?(4)完成如下:(這個(gè)用的是Linux系統(tǒng)的) p3:web元素定位ID (1)先改一下之前的代碼 ?(

    2024年02月08日
    瀏覽(39)
  • 自動(dòng)化測(cè)試:Selenium高級(jí)操作!,看完阿里P9大牛的“軟件測(cè)試成長(zhǎng)筆記”我悟了

    自動(dòng)化測(cè)試:Selenium高級(jí)操作!,看完阿里P9大牛的“軟件測(cè)試成長(zhǎng)筆記”我悟了

    分享他們的經(jīng)驗(yàn),還會(huì)分享很多直播講座和技術(shù)沙龍 可以免費(fèi)學(xué)習(xí)!劃重點(diǎn)!開源的!?。?qq群號(hào):110685036 Switch_to切換frame 如果元素在html的frame或iframe中,則無(wú)法直接定位到元素。需要先切換到該frame中,再進(jìn)行定位及其他操作。 相關(guān)方法: driver.switch_to.frame(frame_reference)

    2024年04月25日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包