![](/img/trans.png)
[英]Running Internet Explorer selenium web driver in private mode c#
[英]Selenium c#: How to launch Internet Explorer driver in a specific version (IE8 for example)
在java中,可以通過傳遞Desired Capabilities為Internet Explorer驅動程序設置IE版本。 這在C#中不起作用。
我希望它看起來像:
DesiredCapabilities ieCapabilities = null;
ieCapabilities = DesiredCapabilities.InternetExplorer();
ieCapabilities.SetCapability(CapabilityType.Version, "8");
IWebDriver driver = new InternetExplorerDriver(ieCapabilities);
在c#中,我無法將DesiredCapabilities傳遞給InternetExplorerDriver()構造函數。
DesiredCapabilities
包含在特定驅動程序的各種Options
類中。
有一個InternetExplorerOptions
類,它允許您指定用於啟動IE的額外選項,其中一個方法是AddAdditionalCapability
,它允許您添加您想要請求的任何功能。 這意味着選項包含的功能隨后傳遞給驅動程序 。
至於你的具體問題,不可能。 這也不是Selenium或IEDriverServer的限制,而是IE本身。 如果沒有重大黑客攻擊,你不能同時在一台機器上安裝多個版本的IE。 另一方面考慮一下 - 無論何時升級IE,它都會卸載以前的版本。
它將啟動您當前安裝的IE。 其他任何東西都是純粹的錯誤,而且,這是錯誤的,因為你不能同時在Windows機器上擁有多個版本的IE。
解決這個問題的唯一方法是為每個版本配備單獨的機器或VM,或投資SauceLabs等自動化雲測試框架。
編輯
您還提到過您希望使用IE8的兼容模式,或者想知道在使用IED驅動程序時是否可行。
這是完全不同的(雙關語)。
IE中的兼容性引擎不是該瀏覽器引擎的真實表示。 因此,你必須認為你正在運行,比如IE9與IE7兼容模式,因此期望IE7完全 - 它不會,甚至微軟說這個,它將被用於adhoc測試 - 它不是依賴於。 因此,即使你能做到這一點,即使是最輕微的條款,它也不是一個可靠的測試。
問題仍然不是Selenium問題。 IED驅動程序將調用IE安裝的任何內容,此時,它將由IE設置為Selenium可以連接的會話。
值得一提的是,您可以與IED驅動程序一起使用的所有兼容性選項不會影響IE本身,更多的是會話的創建以及Selenium如何與之交互。
在這一點上,Selenium把手舉到空中,它幾乎無法做到。
考慮到這一點,Selenium根本無法強制IE使用某種瀏覽器模式。 完全沒有API來做這件事,因此,這並不容易。
這里的解決方法是強制IE首先在兼容性視圖中查看。 您的選擇非常有限:
要實例化不同的版本,可以使用capability.setVersion將版本設置為所需的版本號。 同時,在啟動節點時,需要在命令行中添加以下參數:
browser "browserName=internet explorer,maxInstances=5,platform=WINDOWS, version=8"
要在同一節點上支持多個版本,可以多次使用“-browser”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.