- Selenium 教程
- Selenium - 首頁
- Selenium - 概述
- Selenium - 元件
- Selenium - 自動化測試
- Selenium - 環境搭建
- Selenium - 遠端控制
- Selenium IDE 教程
- Selenium - IDE 簡介
- Selenium - 特性
- Selenium - 限制
- Selenium - 安裝
- Selenium - 建立測試
- Selenium - 建立指令碼
- Selenium - 控制流
- Selenium - 儲存變數
- Selenium - 警報和彈出視窗
- Selenium - Selenese 命令
- Selenium - Actions 命令
- Selenium - Accessors 命令
- Selenium - Assertions 命令
- Selenium - Assert/Verify 方法
- Selenium - 定位策略
- Selenium - 指令碼除錯
- Selenium - 驗證點
- Selenium - 模式匹配
- Selenium - JSON 資料檔案
- Selenium - 瀏覽器執行
- Selenium - 使用者擴充套件
- Selenium - 程式碼匯出
- Selenium - 程式碼輸出
- Selenium - JavaScript 函式
- Selenium - 外掛
- Selenium WebDriver 教程
- Selenium - 簡介
- Selenium WebDriver vs RC
- Selenium - 安裝
- Selenium - 第一個測試指令碼
- Selenium - 驅動程式會話
- Selenium - 瀏覽器選項
- Selenium - Chrome 選項
- Selenium - Edge 選項
- Selenium - Firefox 選項
- Selenium - Safari 選項
- Selenium - 雙擊
- Selenium - 右擊
- Python 中的 HTML 報告
- 處理編輯框
- Selenium - 單個元素
- Selenium - 多個元素
- Selenium Web 元素
- Selenium - 檔案上傳
- Selenium - 定位器策略
- Selenium - 相對定位器
- Selenium - 查詢器
- Selenium - 查詢所有連結
- Selenium - 使用者互動
- Selenium - WebElement 命令
- Selenium - 瀏覽器互動
- Selenium - 瀏覽器命令
- Selenium - 瀏覽器導航
- Selenium - 警報和彈出視窗
- Selenium - 處理表單
- Selenium - 視窗和標籤頁
- Selenium - 處理連結
- Selenium - 輸入框
- Selenium - 單選按鈕
- Selenium - 複選框
- Selenium - 下拉框
- Selenium - 處理 IFrame
- Selenium - 處理 Cookie
- Selenium - 日期時間選擇器
- Selenium - 動態 Web 表格
- Selenium - Actions 類
- Selenium - Action 類
- Selenium - 鍵盤事件
- Selenium - 鍵上/下
- Selenium - 複製和貼上
- Selenium - 處理特殊鍵
- Selenium - 滑鼠事件
- Selenium - 拖放
- Selenium - 筆事件
- Selenium - 滾動操作
- Selenium - 等待策略
- Selenium - 顯式/隱式等待
- Selenium - 支援功能
- Selenium - 多選
- Selenium - 等待支援
- Selenium - 選擇支援
- Selenium - 顏色支援
- Selenium - ThreadGuard
- Selenium - 錯誤和日誌記錄
- Selenium - 異常處理
- Selenium - 其他
- Selenium - 處理 Ajax 呼叫
- Selenium - JSON 資料檔案
- Selenium - CSV 資料檔案
- Selenium - Excel 資料檔案
- Selenium - 跨瀏覽器測試
- Selenium - 多瀏覽器測試
- Selenium - 多視窗測試
- Selenium - JavaScript 執行器
- Selenium - 無頭執行
- Selenium - 捕獲螢幕截圖
- Selenium - 捕獲影片
- Selenium - 頁面物件模型
- Selenium - 頁面工廠
- Selenium - 記錄和回放
- Selenium - 框架
- Selenium - 瀏覽上下文
- Selenium - DevTools
- Selenium Grid 教程
- Selenium - 概述
- Selenium - 架構
- Selenium - 元件
- Selenium - 配置
- Selenium - 建立測試指令碼
- Selenium - 測試執行
- Selenium - 端點
- Selenium - 自定義節點
- Selenium 報告工具
- Selenium - 報告工具
- Selenium - TestNG
- Selenium - JUnit
- Selenium - Allure
- Selenium & 其他技術
- Selenium - Java 教程
- Selenium - Python 教程
- Selenium - C# 教程
- Selenium - Javascript 教程
- Selenium - Kotlin 教程
- Selenium - Ruby 教程
- Selenium - Maven 和 Jenkins
- Selenium - 資料庫測試
- Selenium - LogExpert 日誌記錄
- Selenium - Log4j 日誌記錄
- Selenium - Robot Framework
- Selenium - AutoIT
- Selenium - Flash 測試
- Selenium - Apache Ant
- Selenium - Github 教程
- Selenium - SoapUI
- Selenium - Cucumber
- Selenium - IntelliJ
- Selenium - XPath
Selenium - IE 驅動
Internet Explorer 是一個獨立的伺服器,它實現了 Webdriver 的線協議。這已在 Internet Explorer 11 版本和 Windows 10 中得到驗證。它可能適用於 Internet Explorer 和 Windows 的早期版本,但未獲得官方支援。
驅動程式支援 32 位和 64 位瀏覽器版本。例如,如果使用 IEDriverServer.exe 的 32 位版本,則將開啟 32 位版本的 Internet Explorer。類似地,如果使用 IEDriverServer.exe 的 64 位版本,則將開啟 64 位版本的 Internet Explorer。
IE 驅動程式安裝
在使用 InternetExplorerDriver 之前,沒有執行任何安裝程式的先決條件,但是可能需要一些配置。獨立伺服器可執行檔案可從以下連結中的影像突出顯示部分獲得 https://selenium.programming.tw/downloads/。
下載完成後,應將其設定在正確的路徑中。
IE 驅動的優勢
InternetExplorerDriver 在真實的瀏覽器中執行,並與 JavaScript 一起使用。
IE 驅動的劣勢
InternetExplorerDriver 僅適用於 Windows,並且速度較慢。
什麼是命令列開關?
InternetExplorerDriver 的特性可以透過使用多個命令列引數來更新。
| 開關 | 用途 |
|---|---|
| –port=<portNumber> | 指向 InternetExplorerDriver 的 HTTP 伺服器與來自語言繫結的命令通訊的埠。預設值為 5555。 |
| –host=<hostAdapterIPAddress> | 指向 InternetExplorerDriver 的 HTTP 伺服器與來自語言繫結的命令通訊的主機介面卡的 IP 地址。預設值為 127.0.0.1。 |
| –log-level=<logLevel> | 指向生成日誌訊息的級別。正確的值為 FATAL、ERROR、WARN、INFO、DEBUG 和 TRACE。預設值為 FATAL。 |
| –log-file=<logFile> | 指向日誌檔案的完整路徑和檔名。預設值為標準輸出。 |
| –extract-path=<path> | 指向用於提取伺服器使用的支援檔案的目錄的完整路徑。如果未提及,則預設值為 TEMP。 |
| –silent | 在伺服器啟動時抑制診斷輸出。 |
什麼是重要的系統屬性?
系統屬性使用 Java 中的 System.setProperty() 或使用 InternetExplorerDriver 使用的 -DpropertyName=value 命令列標誌進行配置。
| 開關 | 用途 |
|---|---|
| webdriver.ie.driver | 指向 IE 驅動程式二進位制檔案的路徑。 |
| webdriver.ie.driver.host | 指向 InternetExplorerDriver 與來自語言繫結的命令通訊的主機介面卡的 IP 地址。 |
| webdriver.ie.driver.loglevel | 指向生成日誌訊息的級別。正確的值為 FATAL、ERROR、WARN、INFO、DEBUG 和 TRACE。預設值為 FATAL。 |
| webdriver.ie.driver.logfile | 指向日誌檔案的完整路徑和檔名。 |
| webdriver.ie.driver.silent | 在伺服器啟動時抑制診斷輸出。 |
| webdriver.ie.driver.extractpath | 指向用於提取伺服器使用的支援檔案的目錄的完整路徑。如果未提及,則預設值為 TEMP。 |
IE 驅動程式配置的先決條件
- 應從連結 https://selenium.programming.tw/downloads/ 下載 IEDriverServer。
- 下載完成後,應將其設定在正確的路徑中。
- 在 Internet Explorer 版本 7、Windows Vista、Windows 7 和 Windows 10 的更高版本上,所有區域的受保護模式應設定為相同。可以開啟和關閉該值,前提是每個區域的值都相同。
要設定受保護模式,請從“工具”選單中選擇“Internet 選項”,然後導航到“安全”選項卡。每個區域在選項卡的末尾都有一個複選框,稱為“啟用受保護模式”。
- Internet 選項對話方塊的“高階”選項卡中提供的增強受保護模式應停用 Internet Explorer 版本 10 及更高版本。
- 瀏覽器縮放比例應設定為 100%,這有助於將本機滑鼠事件傳送到正確的座標。
- 對於 Internet Explorer 版本 10,引數“更改文字、應用和其他專案的大小”應設定為 100%。
- 我們應該在目標計算機上設定登錄檔項,以便驅動程式可以連線到 Internet Explorer 物件。對於 32 位 Windows,鍵值應為 -
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer \Main\FeatureControl\FEATURE_BFCACHE
對於 64 位 Windows,鍵值應為 -
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft \Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
請注意,如果不存在,則應建立子鍵 FEATURE_BFCACHE。此外,在此鍵中,生成一個名為 iexplore.exe 的 DWORD 值,並將其設定為 0。
什麼是本機事件和 Internet Explorer?
由於 InternetExplorerDriver 僅在 Windows 上執行,因此它嘗試利用所謂的本機或作業系統級事件來對瀏覽器執行滑鼠和鍵盤操作。這與對相同操作使用模擬 JavaScript 事件形成對比。
使用 JavaScript 事件 的優點是它不需要 JavaScript 沙箱,並且它確認瀏覽器內部的正確 JavaScript 事件傳播。但是目前在 IE 瀏覽器沒有焦點且嘗試將滑鼠懸停在元素上時,滑鼠事件存在一些問題。
瀏覽器焦點
問題在於 IE 瀏覽器沒有完全支援在它沒有焦點時傳送到瀏覽器視窗的 Windows 訊息。唯一被單擊的元素應該有一個焦點視窗,但元素不會經歷點選。
將滑鼠懸停在元素上
當嘗試將滑鼠懸停在元素上時,物理滑鼠位於 IE 瀏覽器視窗的邊界處,但懸停不起作用。它似乎在很短的時間內有效,但隨後元素又恢復到其先前狀態。
點選<option>元素或提交表單和alert()
有時 IEDriver 無法使用原生事件與元素通訊,例如在選擇<select>標籤內的<option>元素時。此外,在使用 submit()、alert()、prompt() 方法時也會遇到相同的問題。
InternetExplorerDriver 的多個例項
IEDriverServer.exe 允許建立多個 InternetExplorerDriver 物件。但此功能尚未經過充分測試,在焦點、cookie 等方面可能存在問題。因此,建議使用虛擬機器和 RemoteWebDriver。有兩個與多個 Internet Explorer 物件之間共享的 cookie 相關的解決方案。第一步是以隱身模式啟動 Internet Explorer。
之後,Internet Explorer 將以清除的會話資料開啟,並在終止時不會儲存修改後的會話資料。為此,請將功能 -orceCreateProcessApi 的值設定為 true,並將 browserCommandLineSwitches 的值設定為 -private。這僅適用於 Internet Explorer 8 及更高版本,並且 Windows 登錄檔應具有以下值,並且其路徑應將鍵 TabProcGrowth 設定為 0 −
HKLM_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main.
要在 InternetExplorer 初始化時清除會話,我們需要將功能 ensureCleanSession 的值傳遞為 true。這將有助於清除所有正在執行的 Internet Explorer 例項的快取。
遠端執行 IEDriverServer.exe
要在遠端計算機內部執行 Internet Explorer 驅動程式,我們需要使用獨立的遠端伺服器與類似於 RemoteWebDriver 的語言繫結連線。
在 Windows 服務下執行 IEDriverServer.exe
不支援在 Windows 服務應用程式中執行 Internet Explorer 驅動程式。在這方面也沒有經過測試。可能可以在 Windows 服務應用程式中執行 Internet Explorer 驅動程式,但可能存在許多需要解決的問題。
結論
這總結了我們關於 Selenium IE 驅動程式教程的全面介紹。我們從描述 IE 驅動程式安裝、IE 驅動程式的優缺點、命令列開關是什麼、重要的系統屬性是什麼、IE 驅動程式配置的先決條件是什麼、原生事件和 Internet Explorer 是什麼、InternetExplorerDriver 的多個例項、遠端執行 IEDriverServer.exe 以及在 Windows 服務下執行 IEDriverServer.exe 開始。
這使您具備了 Selenium IE 驅動程式的深入知識。明智的做法是不斷練習您所學到的知識,並探索與 Selenium 相關的其他知識,以加深您的理解並擴充套件您的視野。
