共用方式為


使用 Internet Explorer 驅動程式將 Microsoft Edge 中的 IE 模式自動化

如果您有業務關鍵舊版網站或應用程式,您可能需要在 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 或更新版本。

Selenium 下載頁面的 IEDriver 區段

必要組態

若要正確設定 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:

  1. 使用指向 Microsoft Edge 瀏覽器的其他屬性來定義 InternetExplorerOptions

  2. 啟動的 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

  1. 通話 InternetExplorerOptions()來定義新的變數 ieOptions

  2. 將屬性設定為 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 偵測到新的視窗:

若要確保已成功建立新視窗,且 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 時,如果您的測試切換會將焦點從特定索引標籤移開,而且您想要稍後能夠切換回該索引標籤,您必須儲存索引標籤視窗句柄的複本。

另請參閱