成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Selenium原理精講

開發
Selenium 是用于測試 Web 應用程序用戶界面 (UI) 的常用框架。它是一款用于運行端到端功能測試的超強工具。

[[343907]]

 您可以使用多個編程語言編寫測試(目前支持的語言有Java,Python,Ruby, C#),并且 Selenium 能夠在一個或多個瀏覽器中執行這些測試。Selenium最常用的版本是Selenium2和Selenium3。大家可以理解為selenium3是selenium2的升級版本,主要更新內容如下:

  • 去掉了對selenium rc的支持
  • 全面擁抱java 8。 如果你需要使用selenium的java binding話,那么你就必須使用java 8了。
  • 支持macOS (Sierra or later),支持官方的safaridriver。
  • 通過ms官方的webdriver server支持Edge瀏覽器。只支持ie 9.0版本以上。
  • 通過Mozilla官方的geckodriver來支持firefox。火狐從47版本開始使用Gecko引擎,該引擎支持多進程。
  • 簡單點講就是如果你想要測試自己的產品在最新版本瀏覽器中的運行情況,必須使用selenium3!

下面我就為大家詳解selenium的兩個核心問題:

1.支持多種語言;

2.可以在多個瀏覽器中運行腳本

Selenium的架構可以用下面的圖進行概況

Selenium原理精講

 

藍色的圖Selenium Language Binding就是我們平時使用的編碼語言,包括java、python等等。可以看到這些語言并沒有直接與Browser Drivers進行通信,而是通過了JSON Wire

Protocol,這就是webdriver協議 ,詳情請參考https://www.w3.org/TR/webdriver/ 。

簡單的說他定義了一套接口規范,以我們最熟悉的點擊操作為例,他對應的接口協議是:

POST /session/{session id}/element/{element id}/click

這樣以來,無論我們編碼使用python代碼來執行點擊操作:

driver.find_element_by_id("").click()

還是以java代碼執行點擊操作:

driver.findElement(By.id("")).click();

都會通過selenium客戶端的程序將click操作轉化成對應的webdriver協議。這樣對于Browser Drivers來說只需要解析具體協議,而無需關注客戶端使用的是哪種代碼了,這就是selenium支持多種語言的原理。

在Browser Drivers中可以看到各個瀏覽器的driver,這里我們以chromedriver為例進行講解。在代碼中直接 new ChromeDriver() 將會啟動一個 ChromeDriver進程,ChromeDriver是一個獨立的服務,它是 google 為網站開發人員提供的自動化測試接口,它是 selenium 和 chrome瀏覽器進行通信的橋梁。chromeDriver解析webdriver協議,然后根據解析結果,調用與之對應的Remote Debugging協議來操控chrome瀏覽器,它可以和瀏覽器內核進行交互進而操控瀏覽器,這里就不對該協議進行詳細介紹了,以上就是selenium操控chrome瀏覽器的原理。

以此類推,大家就會了解為什么使用selenium2和3操控不同的瀏覽器,需要先下載與其對應的瀏覽器driver了。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2010-09-09 10:09:07

Java內存分配

2010-07-28 15:10:21

NFS配置

2020-08-07 08:03:37

IONetty

2010-07-21 16:57:44

telnet命令

2010-09-26 11:17:55

dhcp relay配

2010-03-29 22:33:39

2010-07-01 13:58:50

UCD-SNMP

2019-01-03 12:50:52

Spring BootJava編程語言

2010-08-30 16:14:26

DHCP實驗

2009-12-07 16:21:50

Juniper交換機

2009-12-02 12:52:00

華為路由器命令

2010-06-11 16:33:05

IPv6協議網絡

2010-04-25 17:18:09

TCP負載均衡

2024-11-13 11:12:08

JVM內存區域

2024-05-17 12:43:49

Python編程開發

2009-06-20 18:33:41

2010-04-14 11:17:00

2018-06-26 18:10:43

分布式Redis數據庫

2021-10-26 17:05:55

Redis字符串復雜度

2010-01-04 15:14:08

交換機常見問題
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: a级黄色片在线观看 | 婷婷不卡| a级免费观看视频 | 亚洲成人激情在线观看 | 男人天堂99| a级毛片毛片免费观看久潮喷 | 国产精品久久久久久久白浊 | 日韩欧美三区 | 激情欧美一区二区三区 | 日韩久久久久 | 精品免费国产 | 精品欧美一区二区三区久久久 | 91久久婷婷 | 精品久久久网站 | 九九久久久 | 第四色影音先锋 | 毛片在线看片 | 欧美精品一区二区三区在线播放 | 久久亚洲一区 | 免费欧美视频 | 日韩高清中文字幕 | 一级全黄少妇性色生活免费看 | 国产人成在线观看 | 欧美中文字幕一区二区 | 国产在线看片 | 国产在线观看不卡一区二区三区 | 超碰人人插 | 五月天天丁香婷婷在线中 | 啪啪免费网站 | 综合久久99| 国产一区欧美 | 国产成人福利在线 | 国产一区二区不卡 | 激情六月丁香婷婷 | 在线看片国产精品 | 国产精品一区一区三区 | 国产精品日韩欧美一区二区三区 | 日日干日日操 | 国产ts一区| 久久一视频 | 日本不卡免费新一二三区 |