学习笔记之selenium_grid2
想要運行selenium server,必須要有Java環境,需要配置和安裝JDK和JRE
安裝好后,下載selenium server的jar包https://selenium.dev/downloads/
然后使用java環境打開jar包:
這樣就啟動好了selenium的server
啟動起來后,試著運行一個RC腳本,以下代碼只能在python2中運行,python3中不能運行,python3中貌似已經沒有selenium的包了,也不支持RC了:
grid與webdriver的區別就是,webdriver需要各種瀏覽器的驅動,grid是需要server的支持。
grid是用來執行分布式的,需要多個節點
grid:
hub 主節點,有且只有一個
node 分支節點,可以有無數個
所以selenium server啟動時,需要指定一個主節點,以上代碼運行后,默認的節點是127.0.0.1,端口號是4444
手動指定的話,后面加role(角色):
如圖:
這樣指定之后,hub主節點指向的是4444端口號的主分支
然后可以使用node去指定分支
如圖:
分支必須一個參數(指定端口號時,必須重新換個新的端口號,因為默認的4444已被主節點使用了)
--------------------------------------------------------------------------------------------------------------------------------------------
webdriver的原理:
其實原理跟selenium RC也是用本地端口號是4444來運行的,只是webdriver是寫死的,想用其他地址的話, 直接在以上這個類中去更改主節點使用remote方法
以實際webdriver腳本來解釋:
系統會將運行的log會打印在端口號為5555的DOS界面內,而且相應的對打開各個瀏覽器執行操作。
--------------------------------------------------以上跑的都是本地節點---------------------------------------------------------------
跑遠程節點
我們將遠程節點都定義在分支節點內
可以先在虛擬機中運行,而且要連上網絡
條件:
啟動本機hub主機
啟動遠程node主機,設置端口號為5555
java -jar selenium-server-standalone-3.141.59.jar -role node -port 5555 -hub http://本地主機的IP地址:主節點端口號/grid/register(設置的端口號為5555,指向hub 主機-IP為192...)
然后在本地主機運行腳本,腳本內的地址需要指定遠程主機IP地址和端口號
通過瀏覽器訪問grid的控制臺:http://http://127.0.0.1:4444/grid/console,如圖:
Edge瀏覽器
目前selenium2已經支持Edge瀏覽器,不過,Edge瀏覽器只能運行于Windows10,也是需要下載驅動。在腳本中命名:
from selenium.webdriver import Remote import time dc = {'browserName':'MicrosoftEdge'} driver =Remote(command_executor='http://192.168.31.111:5555/wd/hub',desired_capabilities= {"browserName": "b","marionette": True,"acceptInsecureCerts": True,})driver.get("https://www.baidu.com")driver.find_element_by_id("kw").send_keys("MicrosoftEdge")driver.find_element_by_id("su").click()time.sleep(2)driver.close()safari瀏覽器
需要用safari瀏覽器去跑腳本的話,這個瀏覽器沒有驅動,這個瀏覽器已經繼承到selenium server中了。執行代碼如下:
先啟動selenium server
HtmlUnit模式
HtmlUnit官方網站:http://http://htmlunit.sourceforge.net
HtmlUnit是一款開源的Java頁面分析工具,讀取頁面后,可以有效的使用HtmlUnit分析頁面上的內容。項目可以模擬瀏覽器運行,被譽為java瀏覽器的開源實現,這個沒有界面的瀏覽器,運行速度也是非常的迅速,selenium server中同樣包含了HtmlUnit驅動
這樣的好處就是能節省運行時間
phatomJS
這種方式是運行腳本最快迅速的方式,這個也是需要下載驅動的。就是人們俗稱的爬蟲,它跟HtmlUnit一樣是不會真正打開一個瀏覽器。推薦
selenium grid只能分布式,不能并行,只有結合python的多線程,就會實現分布式,并且并行
分布式:在不同的平臺上執行
并行:同時在不同的平臺上同時執行
java中的TestNG很強大,可以學學,能甩unittest好幾條街
總結
以上是生活随笔為你收集整理的学习笔记之selenium_grid2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Microsoft详细介绍了OPSEC,
- 下一篇: sap erp发展史