如果您有業務關鍵舊版網站或應用程式,您可能需要在 Internet Explorer 中測試內容, (IE) 模式,Microsoft Edge。 本文說明如何開始使用 Internet Explorer Driver (IEDriver) ,以在 Microsoft Edge 中自動化 IE 模式。
Microsoft Edge 中的 IE 模式是一項功能,適用於仍需要 Internet Explorer 11 的組織,以提供舊版網站或應用程式的回溯相容性。 若要深入瞭解 IE 模式,請閱讀 什麼是 Internet Explorer (IE) 模式?
自 2022 年 6 月 15 日起,某些版本的 Windows 10 將不再支援 Internet Explorer 11。 如需詳細資訊,請參閱 Internet Explorer 11 傳統型應用程式淘汰常見問題。
下載 Internet Explorer Driver (IEDriver)
若要在 Microsoft Edge 的 IE 模式中開始自動化測試,請 下載 IEDriver。 請確定您下載的 IEDriver 版本是 4.0.0.0
或更新版本。
必要組態
若要正確設定 IEDriver、Windows 和 Microsoft Edge,請完成 Selenium 必要設定的需求。
將驅動程式可執行檔放在PATH中
驅動程式可執行文件必須放在PATH中;請參閱 IE 驅動程式伺服器。 該頁面的頂端會顯示:「必須從 [下載] 頁面下載獨立伺服器可執行檔,並放在您的PATH中。」
如果驅動程式位置未包含在PATH中,您必須使用Java系統屬性 webdriver.ie.driver
或其他方式來設定驅動程式位置。
在 Microsoft Edge 中自動化 IE 模式
下列各節將逐步引導您使用 Selenium 在 Microsoft Edge 中自動化 IE 模式。
本文提供使用 Selenium 架構的指示,但您可以使用任何支援 WebDriver 的連結庫、架構和程式設計語言。 若要使用另一個架構來完成相同的工作,請參閱所選架構的檔。
若要使用 IEDriver 在 IE 模式中啟動 Microsoft Edge:
使用指向 Microsoft Edge 瀏覽器的其他屬性來定義
InternetExplorerOptions
。啟動的
InternetExplorerDriver
實例,並傳遞它InternetExplorerOptions
。 IEDriver 會啟動 Microsoft Edge,然後以 IE 模式載入您的 Web 內容。
下一節會顯示完整的範例,然後後續各節會著重於上面所列的每個主要步驟。
完整範例
下列範例會在 IE 模式中啟動 Microsoft Edge、流覽至 bing.com,然後搜尋 “WebDriver”。
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;
namespace IEDriverSample
{
class Program
{
static void Main(string[] args)
{
var ieOptions = new InternetExplorerOptions();
ieOptions.AttachToEdgeChrome = true;
//change the path accordingly
ieOptions.EdgeExecutablePath = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe";
var driver = new InternetExplorerDriver(ieOptions);
driver.Url = "https://bing.com";
driver.FindElement(By.Id("sb_form_q")).SendKeys("WebDriver");
driver.FindElement(By.Id("sb_form")).Submit();
driver.Quit();
}
}
}
下列各節會更詳細地說明此範例中的步驟。
使用 Microsoft Edge 的其他屬性來定義 InternetExplorerOptions
使用指向 Microsoft Edge 瀏覽器的其他屬性來定義 InternetExplorerOptions
。
通話
InternetExplorerOptions()
來定義新的變數ieOptions
。將屬性設定為
true
,並將ieOptions.EdgeExecutablePath
設定ieOptions.AttachToEdgeChrome
為 Microsoft Edge 可執行文件的路徑。
var ieOptions = new InternetExplorerOptions();
ieOptions.AttachToEdgeChrome = true;
//change the path accordingly
ieOptions.EdgeExecutablePath = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe";
啟動 IEDriver
啟動 IEDriver。 IEDriver 會啟動 Microsoft Edge,然後以 IE 模式載入您的 Web 內容。
啟動 InternetExplorerDriver
並傳遞先前定義的 ieOptions
。 IEDriver 會在 IE 模式中啟動 Microsoft Edge。 所有頁面導覽和後續互動都會以 IE 模式進行。
var driver = new InternetExplorerDriver(ieOptions);
已知限制
本節涵蓋先前使用 IEDriver 和 IE11 傳統型應用程式的已知案例,但在 IE 模式中搭配使用 IEDriver 與 Microsoft Edge 時需要因應措施。
開啟新視窗
如果您的測試程式代碼使用下列其中一種方法建立新的瀏覽器視窗,您可能需要在之後新增簡短的等候作業,以確保 IEDriver 偵測到新的視窗:
- 從
<script>
頁面中呼叫 window.open 來開啟新視窗。 - 使用 WebDriver New Window 命令開啟新視窗。
若要確保已成功建立新視窗,且 IEDriver 偵測到它,您必須持續檢查 [取得視窗句柄 ] 命令的結果,直到它包含新視窗的句柄為止。
下列範例示範在開啟新視窗時,等候偵測到新視窗句柄的可能方式。
在開啟新視窗的 Click
按鈕上呼叫 方法之後,測試程式代碼必須等到 driver.WindowHandles
包含新的視窗句柄為止。
var initialHandleCount = driver.WindowHandles.Count;
driver.FindElement(By.Id("<Id of the button that will open a new window>")).Click();
var newHandles = driver.WindowHandles;
while (newHandles.Count == initialHandleCount)
{
newHandles = driver.WindowHandles;
}
建立索引標籤並在索引標籤之間切換
如果您的測試程式代碼在相同Microsoft Edge 視窗中的多個索引標籤之間切換,則會變成非作用中的索引標籤可能不會包含在 取得視窗句柄所傳回的句柄清單中。 在 Internet Explorer 11 傳統型應用程式中,不論啟用狀態為何,IEDriver 都會傳回 IE 中所有索引卷標的句柄。
在 IE 模式中使用 Microsoft Edge 時,如果您的測試切換會將焦點從特定索引標籤移開,而且您想要稍後能夠切換回該索引標籤,您必須儲存索引標籤視窗句柄的複本。
另請參閱
- 使用 WebDriver 將 Microsoft Edge 自動化 - 使用 WebDriver 通訊協定自動化 Microsoft Edge 的概觀。
- Selenium 檔 - 有關 Selenium 內容中的 WebDriver,以及如何使用 Selenium 撰寫自動化 WebDriver 測試的資訊。
- 請連絡 Microsoft Edge DevTools 小組 ,以傳送有關使用 WebDriver、WebDriver 測試架構 (如 Selenium) 和 Microsoft Edge 的意見反應。