6

我的所有測試都在ubuntu盒子中運行。測試是用PHP編寫的。他們在firefox驅動程序和chrome驅動程序中工作得很好。我正在使用在同一個盒子中運行的獨立硒服務器(selenium-server-standalone-2.25.0.jar)。最近我需要針對IE平臺編寫測試。我已經嘗試了一些東西,但到目前爲止,我仍然不確定爲我的特定場景設置IE驅動程序的正確方法是什麼。如何在遠程盒子上設置IE webdriver

我試過在同一個ubuntu盒子裏安裝IE,但是我在安裝過程中遇到了很多問題,並且在我擺脫了這些問題並使其能夠從命令行運行IE之後,仍然沒有爲我的測試工作。

我通過這個特殊的文檔閱讀這裏:http://code.google.com/p/selenium/wiki/InternetExplorerDriver,隨後通過在Windows中,直到我看到這一點:

由IEDriverServer.exe啓動HTTP服務器設置一個訪問 控制列表只接受來自本地機器的連接,以及 不允許來自遠程機器的傳入連接。目前,如果不將源代碼修改爲 IEDriverServer.exe,則無法更改此 。要在遠程的 機器上運行Internet Explorer驅動程序,請將Java獨立遠程服務器與您的 語言綁定的RemoteWebDriver的等價物結合使用。

所以我將selenium-server-standalone-2.25.0.jar下載到windows機器上並啓動它;我的IEDriverServer.exe被放入C:\ windows \ system32 \,它位於我的PATH中。然後,我改變了我的Ubuntu的代碼框中的代碼,指向運行在Windows中的硒服務器。但仍然沒有運氣。

我用google搜索了一下,有些情況下人們成功運行它。但他們似乎正在使用java綁定或c#綁定,我認爲他們正在開發一個本地框。我還沒有找到像我這樣的工作案例:

一個Ubuntu的盒子,其中基於PHP的測試運行連接到在Windows上運行的遠程硒服務器。 一個Windows硒盒獨立服務器運行,並在IEDriverServer.exe在路徑

謝謝。

+0

這裏有一些非常有用的信息是您正在使用哪種PHP語言綁定,失敗的PHP代碼示例以及您從Java遠程服務器接收到哪些錯誤。 – JimEvans

+0

我也有同樣的問題。看起來像沒有辦法在PHP測試中遠程測試IE。我使用https://github.com/Nearsoft/PHP-SeleniumClient作爲語言綁定。 –

回答

6

我有一個類似的問題 - 在Linux上工作,並希望對IE 11運行我的WD測試 - 並讓它工作。我和OP之間的主要區別是我的測試是用Java編寫的。

我的目標是這樣的:

  • 我的工作站:Ubuntu的14.04,用Java編寫的測試。
  • Windows機器:一些VM與IE 11
  • 我想(這樣我就不需要安裝我的整個開發環境上運行我對IE測試從Ubuntu的工作站上的Windows中,運行Windows機器)。

我做了什麼:

  1. 了Win 7的& IE 11的VirtualBox虛擬機,從微軟(here)下載,搭載它。 (a)Java JRE,(b)Selenium Standalone Server jar(不是「Internet Explorer驅動程序服務器」,也在該頁面上提及),(c)Internet Explorer Driver
  2. 下載到Windows框中。
  3. 在我的工作站和Windows盒子之間設置僅主機網絡。 Here's一個很好的描述過程。儘管博客文章中的VM是Linux,但對於Windows VM來說,它的工作原理幾乎相同(使用命令提示符中的「ipconfig」而不是「ifconfig」來查找您的IP)。
  4. 在Windows框中,在官方Internet Explorer驅動程序頁面上提及的配置事項,部分爲Required Configuration。在情況下,他們更改了鏈接,我在這裏將其粘貼:
  • 的IEDriverServer可執行文件必須下載並放置在您的路徑。
  • 在Windows Vista或Windows 7上的IE 7或更高版本上,必須將每個區域的保護模式設置設置爲相同的值。該值可以打開或關閉,只要每個區域的值相同即可。要設置保護模式設置,請從工具菜單中選擇「Internet選項...」,然後單擊安全選項卡。對於每個區域,在標籤爲「啓用保護模式」的選項卡底部會出現一個複選框。
  • 此外,對於IE 10及更高版本,必須禁用「增強保護模式」。該選項位於「Internet選項」對話框的「高級」選項卡中。
  • 瀏覽器縮放級別必須設置爲100%,以便可以將原生鼠標事件設置爲正確的座標。
  • 僅適用於IE 11,您需要在目標計算機上設置註冊表項,以便驅動程序可以維護與創建的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子鍵可能存在也可能不存在,如果不存在則應該創建。重要提示:這裏面的關鍵,創建0

注意值名爲iexplore.exe的DWORD值,我也沒必要把IEDriverServer.exe的位置的路徑,找不到「增強保護模式「在我的IE 11設置(所以沒有這樣做)。

  • 在Windows中,從命令提示符下啓動(他們必須處於運行狀態,我想通了,從上this issue職位):
    • java -jar selenium-server-standalone-2.53.1.jar
    • IEDriverServer.exe
  • 編輯的我的測試設置部分使用RemoteWebDriver,像這樣(192.168.56。101是主機只有Windows中的網絡IP):

    DesiredCapabilities capability = DesiredCapabilities.internetExplorer(); 
    driver = new RemoteWebDriver(new URL("http://192.168.56.101:4444/wd/hub"), 
        capability); 
    
  • 然從我的Ubuntu的工作站測試正常: mvn test myproject
  • 和它的工作! :)

    +0

    感謝您詳細介紹您的工作 –

    相關問題