[C#]跨網頁自動傳值之Selenium grid 安裝與使用

1。檢查是否有java, 若沒安裝可以到這裡下載並安裝







2。下載jre
http://selenium-release.storage.googleapis.com/index.html


3.。開啟cmd, 導向指定的jar的路徑
,輸入指令 : java -jar selenium-server-standalone-3.14.0.jar -role hub
(代表server正開啟中)

5。完成後,http://192.168.43.177:4444/grid/console
檢視是否有完成註冊
出現這個畫面,代表註冊完成,


6。開啟cmd, 導向指定的jar的路徑
輸入指令:java -jar selenium-server-standalone-3.14.0.jar -role node -hub http://<<此為輸入你的IP>>:4444/grid/register -port 5555 -browser browserName=firefox,maxInstances=5 -browser browserName=chrome,maxInstances=5 -browser "browserName=internet explorer,maxInstances=5" -maxSession 5
(此畫面代表開起虛擬VM)

指令解釋:
-role 要啟用的 Selenium 類型,這是指 hub or node
-hub 註冊-hub,網址 http://111.222.33.4444:5555/grid/register 是 hub 提供給 node 註冊用的接口, hub 架在 IP 111.222.33.4444 底下,PORT 如果沒有修改通常是 5555
maxInstances:每次最多可執行的瀏覽器數 。
maxSession:總共可執行的瀏覽器數。一個 node,可以開的 session 數量
browserName 指定瀏覽器的種類。

指令-browser browserName=firefox,maxInstances=5 是指 firefox 只能開 5 個。
超過 5 個就必須等其他瀏覽器工作結束,才能再開啟。

maxSession 與 -maxInstances 的關係:
  maxSession 為 maxInstances 的總和
例如:chrome 開5個,ie開5個
那maxSession 就是10個,超開數量實際上是不會被使用到。

*以上為安裝在服務端,且兩個cmd都要開啟,才能正常執行。
否則會跳出
「Unexpected error. System.Net.WebException: 無法連接至遠端伺服器 ---> System.Net.Sockets.SocketException: 無法連線,因為目標電腦拒絕連線。」
這個錯誤資料。

以上參考網站:
如何架設 Selenium Grid (包含 hub 與 node)
selenium-grid 安裝或設置
網頁自動化測試從無到有:使用Selenium(下)
SeleniumAPI Doc:


另外推薦有UI畫工具,VisGrid

需要先下載檔案(VisGrid官網)


解壓縮zip檔後,jar檔直點兩下,即可看啟軟體。


若driver版本過舊,可以下載最新版本,放到drivers資料夾所屬瀏覽器名資料夾裡。




 2。開啟軟體後,會自動捉取本機的ip
1。點擊Start Hub 
3。點擊CreatNode,設定節點
4。若hub非同一台電腦,可以勾選後,即可輸入hub ip 跟 port
5.。點擊add 後,下方 Grid Console點選後,會另開網頁,可以看到hub 跟node資訊。


更多相關使用方法可以參考以下網站:
VisGrid使用方法
VisGrid官網

以上完成後,就可以開始寫code啦
工具是使用 visual studio 
語言是c#

    protected void Button2_Click(object sender, EventArgs e)
        {
           
                ChromeOptions chromeOptions = new ChromeOptions();
                //關閉瀏覽器上方「目前受自動軟體測試」
                chromeOptions.AddExcludedArgument("enable-automation");
                driver = new RemoteWebDriver(
                            new Uri("http://localhost:4444/wd/hub/"),
                            chromeOptions.ToCapabilities(),
                            TimeSpan.FromMinutes(2));
                driver.Manage().Window.Maximize();
                 driver.Url = "https://www.google.com/";
                ((IJavaScriptExecutor)driver).ExecuteScript("document.getElementByName('q')[0].value='2019/11/11'" );
                Thread.Sleep(10000);
               // IWebElement elem = driver.FindElement(By.Id("set_start_time"));
              //  elem.Click();
      
          
        }

留言

這個網誌中的熱門文章

用List寫小算盤(先乘除後加減) C#