{"id":24747,"date":"2019-08-29T12:15:42","date_gmt":"2019-08-29T09:15:42","guid":{"rendered":"https:\/\/www.webcodegeeks.com\/?p=24747"},"modified":"2019-08-28T12:55:06","modified_gmt":"2019-08-28T09:55:06","slug":"selenium-automation-testing-internet-explorer","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/","title":{"rendered":"Selenium Automation Testing on Internet Explorer (IE) &amp; Edge"},"content":{"rendered":"\n<p>Design and Usability are two important factors when you are building a consumer web product\/web application. You might need to step into the shoes of the customers in order to tackle different usability problems. However, you may have to fill in a lot of shoes considering the fact that not all your customers would be using the same browsers as you. <a href=\"https:\/\/www.lambdatest.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Cross browser testing<\/a> becomes a pivotal part of every test cycle. As a tester or developer, you might be using the macOS for product development but you need to take care of scenarios where customers use deprecated browsers like Internet Explorer.<\/p>\n\n\n\n<p>IE has been a headache for web development ever since modern browsers such as Chrome, Safari, Mozilla Firefox, and many more stepped into the picture. Delivering a slow response time, and lack of features has led the majority of IE users to switch for some other browsers. So if you have developed a website on Chrome, then, to have it tested on IE is going to be a major concern. As long as you are a windows user it may seem feasible, but what would a macOS user do?<\/p>\n\n\n\n<p>One common question that developers &amp; testers often think about is how to test IE on macOS? And even if you do find a way to test IE on mac, is there a way to incorporate automation testing for testing IE on mac?<\/p>\n\n\n\n<p>This article is my attempt to help you perform automation testing with Selenium for testing IE on macOS, we will also be looking into Edge browser. But before we get started with automation testing, let us understand whether we really need to test IE? As many of us assume that testing on IE is a waste of time because people hardly use it, while some of us think otherwise. We will clear that dilemma as we go through.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Should You Consider Microsoft Internet Explorer (IE) For Cross Browser Testing?<\/h2>\n\n\n\n<p>IE might not be the most preferred browser from a web-development &amp; design point of view but there is still a significant percentage of users that makes use of IE. As per <a href=\"http:\/\/gs.statcounter.com\/browser-market-share\/desktop\/worldwide\/#monthly-201806-201906\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Desktop Browser Market Share Worldwide<\/a>, IE as of July 2019 holds a 5% market share in the web browser market which is a good number considering the overall number of internet users worldwide.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/pasted-image-0-1-1024x600.png\" alt=\"\" class=\"wp-image-24752\" width=\"768\" height=\"450\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/pasted-image-0-1-1024x600.png 1024w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/pasted-image-0-1-300x176.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/pasted-image-0-1-768x450.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/pasted-image-0-1.png 1117w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<p>There are a significant number of end-users, as well as enterprises that use Microsoft\u2019s Internet Explorer for browsing and performing other tasks on the web. In fact, there are many enterprises that push their testers to <a href=\"https:\/\/www.lambdatest.com\/blog\/performing-cross-browser-testing-with-lambdatest\/\" target=\"_blank\" rel=\"noopener noreferrer\">perform cross browser testing<\/a> only on Internet Explorer(IE) for internal tasks. Hence, you might end up in situations where there are multiple \u2018compatible\u2019 browsers installed on your Mac machine but you need to test your product against Internet Explorer or Microsoft Edge. Browser compatibility testing is a core component in testing features of any web product\/web application. Overlooking the same can lead to serious usability problems on the customer front.<\/p>\n\n\n\n<p>You may argue about the reason for considering an outdated browser like IE for cross browser testing. To some extent, the argument is correct since the official support for IE was discontinued in the year 2015. There are no official updates or support for IE since that time. Though Microsoft Security Chief \u2013 Chris Jackson urged users to stop using IE three years back, there is still a significant user base that is still using IE as the default browser. In a blog titled <a href=\"https:\/\/techcommunity.microsoft.com\/t5\/Windows-IT-Pro-Blog\/The-perils-of-using-Internet-Explorer-as-your-default-browser\/ba-p\/331732\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">The perils of using Internet Explorer as your default browser<\/a>, Chris Jackson stated<\/p>\n\n\n\n<p>Internet Explorer is a compatibility solution. We\u2019re not supporting new web standards for it and, while many sites work fine, developers by and large just aren\u2019t testing for Internet Explorer these days. They\u2019re testing on modern browsers. So, if we continued our previous approach, you would end up in a scenario where, by optimizing for the things you have, you end up not being able to use new apps as they come out. As new apps are coming out with greater frequency, what we want to help you do is avoid having to miss out on a progressively larger portion of the web!<\/p>\n\n\n\n<p><a href=\"https:\/\/www.lambdatest.com\/blog\/death-of-ie\/\" target=\"_blank\" rel=\"noopener noreferrer\">Read more: Death of IE; Its Aftermath on Cross Browser Compatibility <\/a><\/p>\n\n\n\n<p><strong>So should you consider IE for <a href=\"https:\/\/www.lambdatest.com\/feature\" target=\"_blank\" rel=\"noopener noreferrer\">browser compatibility testing<\/a>?<\/strong><\/p>\n\n\n\n<p>Yes, you should. Although IE is being redundant slowly, it still holds a significant 5% of the overall browser market share for Desktops. Even if you are using macOS, you should make sure that you test IE on the mac so that there are no issues when users access your website\/web application. Wondering on how you can test IE on mac?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cross Browser Testing With IE On macOS Device<\/h2>\n\n\n\n<p>Mac does not support Internet Explorer. However, if you are a developer using Mac, this excuse may not fly with your end clients. And that goes with your Selenium automation tests as well. You would have to find a way to run your test scripts on Internet Explorer browsers as well. There are a couple of ways in which you can test IE on macOS systems:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. <a href=\"https:\/\/www.virtualbox.org\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">VM Virtual Box<\/a><\/h3>\n\n\n\n<p>If you are a developer, there is a high probability where you would have made use of the Oracle VM Virtual Box. It lets you install a variety of operating systems in a virtual environment. In order to test IE on Mac, you need to install VM Virtual Box on your device. Once installed, the extension pack and installed the .dmg image on your macOS, can help you perform cross browser testing using IE on Mac.<\/p>\n\n\n\n<p>For installation and other relevant information about Oracle VM Virtual Box, we recommend you to check this link. You might want to have a look at the relevant VM commands that can be used along with IE.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. <a href=\"https:\/\/www.lambdatest.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Cross Browser Testing Cloud<\/a><\/h3>\n\n\n\n<p>This is one of the ideal ways in which you can achieve the task of <a href=\"https:\/\/www.lambdatest.com\/feature\" target=\"_blank\" rel=\"noopener noreferrer\">browser compatibility testing<\/a>; not only on IE but a host of other browsers like Chrome, Firefox, Safari, Opera, etc. There are cross browser testing platforms like LambdaTest where you can test the nitty-gritty of your website\/web application against 2000+ browsers on a variety of operating systems &amp; devices. You can find the complete <a href=\"https:\/\/www.lambdatest.com\/list-of-browsers\" target=\"_blank\" rel=\"noopener noreferrer\">list of browsers<\/a> available on the LambdaTest platform.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"https:\/\/accounts.lambdatest.com\/register\/\"><img decoding=\"async\" width=\"431\" height=\"330\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/cta-img.png\" alt=\"\" class=\"wp-image-24753\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/cta-img.png 431w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/cta-img-300x230.png 300w\" sizes=\"(max-width: 431px) 100vw, 431px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Porting your existing Selenium automation testing implementation that makes use of local Selenium Grid to remote Selenium Grid hosted on LambdaTest cloud servers is a simple task. You can test on IE, even if you are a macOS user without any local installation. All you need to do is select the configurations on which you need to test, declare them in your Desired Capabilities and have them executed on VMs(Virtual Machines) hosted on LambdaTest cloud servers. This requires zero setups or downtime from your end, and you can leave the maintenance part on us. So you focus on doing what you do best, coming up with awesome test cases, while we take care of providing you with all the testing environments you need as per your test script.<\/p>\n\n\n\n<p>Another upside of using LambdaTest Selenium Grid is that you can perform Selenium automation testing with every programming languages like Python, C#, Java, etc. that offers compatibility with Selenium through bindings.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. <a href=\"http:\/\/winebottler.kronenberg.org\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">WineBottler<\/a><\/h3>\n\n\n\n<p>WineBottler for Mac is very much similar to Wine on Linux as both of them are used for the same task i.e. running Windows on host operating system like Mac\/Linux. WineBottler 1.8.6 (stable version) is currently available for macOS:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>High Sierra<\/li><li>Sierra<\/li><li>El Capitan<\/li><li>Yosemite<\/li><li>Mavericks<\/li><li>Mountain Lion<\/li><li>Lion<\/li><li>Snow Leopard<\/li><\/ul>\n\n\n\n<p>You would need to download and install the WineBottler application on your Mac machine\/device. Once installed, you can start using IE that is available by default with the installation. The only downside about such an approach is that you need to again install your entire software development environment on the virtual Windows OS to use Selenium automation testing framework for automated cross browser testing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Installation of Windows on Mac<\/h3>\n\n\n\n<p>In case you are keen to have a dual-boot kind of setup on your Mac machine; you should opt for installing a Windows operating system on a Mac.<\/p>\n\n\n\n<p>Before going ahead with this option, it is important to check whether the version of macOS which you are using supports Windows or not. In case there is support, you need to follow the necessary steps for <a href=\"https:\/\/support.apple.com\/en-al\/HT201468\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">installing Windows on Mac<\/a>. Once the installation is complete, you need to restart your machine after which you would be prompted to select your preferred OS (Mac\/Windows) to boot the system\/device. Though this is a local Windows installation, you still need to go through all the necessary steps to perform Selenium Automation Testing with Python or any other programming language.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. User-agent on Safari Browser<\/h3>\n\n\n\n<p>Though Safari is the default browser on macOS; you can leverage the User Agent option on Safari to test IE on Mac without any installation\/virtualization. All you need to do is change the user-agent to Internet Explorer by clicking on one of the Internet Explorer options. The user-agent option is available in the <b>Develop -&gt; User Agent<\/b> menu item.<\/p>\n\n\n\n<p>You also have the option to choose <b>Google Chrome \u2013 Windows or Firefox \u2013 Windows<\/b> if you plan to perform cross browser testing on browsers apart from IE\/Safari.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. Virtualization<\/h3>\n\n\n\n<p>Using virtualization, you can run Windows on your Mac machine. There can be multiple Virtual Machines (VMs) along with Windows VM so that you can test your website\/web application on different operating systems at the same time. You would require a powerful machine to accomplish this task.<\/p>\n\n\n\n<p>Different options for Virtualization on macOS are Parallels Desktop, VMWare Fusion, VirtualBox, Apple Boot Camp, etc.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.lambdatest.com\/blog\/how-to-use-virtual-machines-for-cross-browser-testing-of-a-web-application\/\" target=\"_blank\" rel=\"noopener noreferrer\">Read More: How To Use Virtual Machines for Cross Browser Testing of a Web Application?<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7. Remote IE<\/h3>\n\n\n\n<p>Remote IE is a tool launched by Microsoft. Using Remote IE, you can perform test your product against IE which is installed on a Windows Server running on Microsoft Azure Cloud. Since you will be using a virtual machine on which IE is installed, you do not require any local installation to test IE on Mac. It runs just like any other native application.<\/p>\n\n\n\n<p>The entire process of connecting to the Cloud and accessing IE is simple. Microsoft has built Microsoft Remote Desktop application for macOS X which can be downloaded from the Mac Application Store from <a href=\"https:\/\/itunes.apple.com\/gb\/app\/microsoft-remote-desktop\/id715768417?mt=12\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">here<\/a>.<\/p>\n\n\n\n<p>These were different ways to test IE on macOS. Now, let\u2019s get into action and perform automated cross browser testing with Selenium for internet explorer. We will also look into different challenges that one may face while Selenium automation testing on IE.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cross Browser Testing Using Selenium With Internet Explorer (IE)<\/h2>\n\n\n\n<p>It is important to understand that many advanced features might not work on IE. IE is comparatively slow when compared to other latest web browsers and this could also impact the overall performance of the web page when it is loaded on IE. It is likely that you might encounter a number of NoSuchElementFound exception &amp; synchronization issues when you are using JavaScript test suites with the 64-bit version. Along with those issues, you might also come across problems with mouse events, hover events, keyboard events, CSS selectors, etc. I am going to talk<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Challenges When Automation Testing With Selenium &amp; Internet Explorer (IE)<\/h3>\n\n\n\n<p><b>1. WebDriverWait for handling synchronization issues<\/b><\/p>\n\n\n\n<p>Synchronization issues can be handled by making sure that sufficient time is given to the web elements to load before an action is performed on them. You can make use of Implicit Wait or Explicit Wait to achieve synchronization. In Implicit Wait, the webdriver will wait even if the element is loaded to avoid throwing up the No Such Element exception. This might impact the performance of the test cases.<\/p>\n\n\n\n<p>If you wish to apply to wait on particular web elements, then Explicit Wait will help you do so. You wait on a particular condition and once that condition is satisfied, it exits from the loop.<\/p>\n\n\n\n<p><b>2. CSS Selectors<\/b><\/p>\n\n\n\n<p>As per Caniuse, IE7 &amp; IE8 only have partial support for CSS3 locators. The CSS3 locators that are supported on these versions are General siblings (element1 ~ element2) and Attribute selectors ([attr^=val], [attr$=val], and [attr*=val]). However, all the CSS3 selectors are supported on more popular versions of IE i.e. IE9~ IE11 (<a href=\"https:\/\/caniuse.com\/#feat=css-sel3\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Source<\/a>)<\/p>\n\n\n\n<p><a href=\"https:\/\/www.lambdatest.com\/blog\/how-pro-testers-use-css-selectors-in-selenium-automation-scripts\/\" target=\"_blank\" rel=\"noopener noreferrer\">Read More: How Pro-Testers Use CSS Selectors In Selenium Automation Scripts?<\/a><\/p>\n\n\n\n<p><b>3. Handling of Native events, Mouse events, etc.<\/b><\/p>\n\n\n\n<p>The IE WebDriver makes use of native Windows events to perform HID operations i.e. operations using the keyboard, mouse, or other HID device. Developers have faced a number of issues when using HID devices on IE for Selenium automation testing. The only workaround is to re-test using JavaScript.<\/p>\n\n\n\n<p><b>4. Performance problems with SendKeys<\/b><\/p>\n\n\n\n<p>The Selenium framework makes use of the Selenium WebDriver for interacting with the web elements on the web page. Depending on the architecture of your machine (32-bit, 64-bit), you need to download IEDriverServer.exe which will take commands from the Selenium script and interact with the browser. IEDriverServer.exe for 32-bit architecture and 64-bit architecture can be downloaded from <a href=\"https:\/\/goo.gl\/9Cqa4q\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">here<\/a> &amp; <a href=\"https:\/\/goo.gl\/AtHQuv\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">here<\/a> respectively.<\/p>\n\n\n\n<p>Performance issues have been reported by developers where typing is very slow in the text field on IE. To overcome this problem, you need to make use of Selenium WebDriver for 32-bit IE even though your machine architecture is 64-bit. Once this is done, the SendKeys() performance on IE would be on par with the performance on popular browsers like Chrome, Firefox, etc.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Automation Testing With Selenium &amp; Internet Explorer<\/h3>\n\n\n\n<p>So far we have looked at the importance of considering IE for browser compatibility testing and the challenges you would face when testing on IE. We also looked at options on how you can test with IE on Mac.<\/p>\n\n\n\n<p>Now, let\u2019s have a look at how you can perform automation testing with Selenium &amp; IE; for demonstration, we are making use of a Windows 10 machine which has pre-installed Internet Explorer browser. In order to get started, you should have Python &amp; Selenium framework installed on your machine. You can download Python installation files for Windows from <a href=\"https:\/\/www.python.org\/downloads\/windows\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">here<\/a>. To install Selenium, you should execute pip install selenium on your terminal. For implementation, we make use of PyCharm IDE (Community Edition) which can be downloaded from <a href=\"https:\/\/www.jetbrains.com\/pycharm\/download\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">here<\/a>.<\/p>\n\n\n\n<p>With the basic setup ready for Selenium automation testing, the next step is to download IE WebDriver i.e. IEDriverServer executable on your development machine. The download locations are below:<\/p>\n\n\n\n<table class=\"wp-block-table\"><tbody><tr><th>\n<p>&nbsp;<\/p>\n<p><span> Machine Architecture<br><\/span><\/p>\n<\/th><th>\n<p>&nbsp;<\/p>\n<p><span> Download Location<br><\/span><\/p>\n<\/th><\/tr><tr><td>\n<p>32-bit Windows (or 32-bit IE)<\/p>\n<\/td><td>\n<p><a href=\"https:\/\/goo.gl\/9Cqa4q\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">https:\/\/goo.gl\/9Cqa4q<\/a><\/p>\n<\/td><\/tr><tr><td>\n<p>64-bit Windows (or 64-bit IE)<\/p>\n<\/td><td>\n<p><a href=\"https:\/\/goo.gl\/AtHQuv\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">https:\/\/goo.gl\/AtHQuv<\/a><\/p>\n<\/td><\/tr><\/tbody><\/table>\n\n\n\n<p>If you face any issues with 64-bit IE during the course of development &amp; testing, replace WebDriver 64-bit IE with WebDriver for 32-bit IE as discussed in the earlier section. Add the path (where IEDriverServer.exe is present) to the environment variable PATH using set PATH=%PATH%;<\/p>\n\n\n\n<p>Let us have a look at a simple example that demonstrates Selenium automation testing with IE where the task is to perform a search on Duckduckgo.<\/p>\n\n\n\n<p>FileName \u2013 test_1_duckduckgo_search.py<\/p>\n\n\n\n<div>\n<div id=\"highlighter_718949\" class=\"syntaxhighlighter  perl\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">unittest<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"perl plain\">from selenium <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">webdriver<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"perl keyword\">import<\/code> <code class=\"perl functions\">time<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"perl plain\">from <\/code><code class=\"perl functions\">time<\/code> <code class=\"perl keyword\">import<\/code> <code class=\"perl functions\">sleep<\/code><\/div>\n<div class=\"line number5 index4 alt2\">&nbsp;<\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"perl plain\">from selenium.webdriver.support.ui <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">WebDriverWait<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"perl plain\">from selenium.webdriver.support <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">expected_conditions as EC<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"perl plain\">from selenium.webdriver.common.by <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">By<\/code><\/div>\n<div class=\"line number9 index8 alt2\">&nbsp;<\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"perl plain\">class SeachTest(unittest.TestCase):<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">def setUp(self):<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl comments\"># Creation of IE WebDriver instance<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">self.driver = webdriver.Ie(executable_path=r<\/code><code class=\"perl string\">'location_of_IEDriverServer.exe'<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number14 index13 alt1\">&nbsp;<\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">def test_Search(self):<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">driver = self.driver<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">driver.maximize_window()<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">driver.get(<\/code><code class=\"perl string\">\"<a href=\"https:\/\/duckduckgo.com\/\">https:\/\/duckduckgo.com\/<\/a>\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">elem = WebDriverWait(driver, 20).<\/code><code class=\"perl keyword\">until<\/code><code class=\"perl plain\">(EC.element_to_be_clickable((By.NAME, <\/code><code class=\"perl string\">\"q\"<\/code><code class=\"perl plain\">)))<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">elem.send_keys(<\/code><code class=\"perl string\">\"Lambdatest\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">elem.submit()<\/code><\/div>\n<div class=\"line number22 index21 alt1\">&nbsp;<\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl functions\">sleep<\/code><code class=\"perl plain\">(10)<\/code><\/div>\n<div class=\"line number24 index23 alt1\">&nbsp;<\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">def tearDown(self):<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl comments\"># Close the browser.<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">self.driver.<\/code><code class=\"perl functions\">close<\/code><code class=\"perl plain\">()<\/code><\/div>\n<div class=\"line number28 index27 alt1\">&nbsp;<\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"perl keyword\">if<\/code> <code class=\"perl plain\">__name__ == <\/code><code class=\"perl string\">'__main__'<\/code><code class=\"perl plain\">:<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">unittest.main()<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>The example makes use of the unittest framework in Python. If you are not aware of unittest, we recommend you to read our blog on <a href=\"https:\/\/www.lambdatest.com\/blog\/parallel-testing-in-selenium-webdriver-with-python-using-unittest\/\" target=\"_blank\" rel=\"noopener noreferrer\">parallel testing with Selenium &amp; Python using unittest<\/a>.<\/p>\n\n\n\n<p>The prerequisite steps for initialization &amp; setup are done in the setup() method and clean-up steps are done in the tearDown() method. A local WebDriver is used to invoke an instance of IE.<\/p>\n\n\n\n<div>\n<div id=\"highlighter_880987\" class=\"syntaxhighlighter  perl\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"perl plain\">def setUp(self):<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl comments\"># Creation of IE WebDriver instance<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">self.driver = webdriver.Ie(executable_path=r<\/code><code class=\"perl string\">'location_of_IEDriverServer.exe'<\/code><code class=\"perl plain\">)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>A WebDriverWait() of 20 seconds is used to ensure that the loading of the search box on Duckduckgo is complete. The execution was done by invoking python &lt;file_name.py&gt; from the terminal. Shown below are some of the options that you can set while configuring the IE browser for Selenium Automation Testing.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"596\" height=\"194\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/image1.png\" alt=\"\" class=\"wp-image-24754\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/image1.png 596w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/image1-300x98.png 300w\" sizes=\"(max-width: 596px) 100vw, 596px\" \/><\/figure><\/div>\n\n\n\n<p>Since this was the very first cross browser testing with Selenium &amp; IE, there were a couple of issues that we encountered during the process:<\/p>\n\n\n\n<p><b>NoSuchWindowException \u2013<\/b> The exception was raised due to incorrect Protected Mode Settings in IE. As per the <a href=\"https:\/\/github.com\/SeleniumHQ\/selenium\/wiki\/InternetExplorerDriver\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">official documentation of InternetExplorer Driver<\/a>, the Protected Mode settings for each zone should be the same i.e. High\/Medium\/Medium-High.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"512\" height=\"131\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/unnamed.png\" alt=\"\" class=\"wp-image-24755\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/unnamed.png 512w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/unnamed-300x77.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure><\/div>\n\n\n\n<p>To change the settings, please go to Tools -&gt; Internet Options -&gt; Security option on the IE browser. Set the same Protected Mode Settings for each zone i.e. Internet, Local Intranet, Trusted Sites, and Restricted Sites.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"512\" height=\"322\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/unnamed-1.png\" alt=\"\" class=\"wp-image-24756\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/unnamed-1.png 512w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/unnamed-1-300x189.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure><\/div>\n\n\n\n<p>Also, disable Enhanced Protected Mode for each zone. Restart IE to apply the settings and now you would not encounter this issue.<\/p>\n\n\n\n<p><b>Lag in event handling \u2013<\/b> The connection between the WebDriver i.e. IEDriverServer.exe and browser under test i.e. IE might get lost during the process of testing. This can happen when you are waiting for a dynamic web element to be loaded on the page. You need to perform two important setup changes mentioned below<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><b>Creation of iexplore.exe key in registry (only for IE 11) \u2013<\/b> In case you are using IE 11, you should create a new entry in the registry.<br> <table border=\"1\"> <tbody> <tr> <th> <p>&nbsp;<\/p> <p><span> Architecture<br><\/span><\/p> <\/th> <th> <p>&nbsp;<\/p> <p><span> Registry Key Location<br><\/span><\/p> <\/th> <\/tr> <tr> <td> <p>32-bit Windows (or 32-bit IE)<\/p> <\/td> <td> <p>HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BFCACHE<\/p> <\/td> <\/tr> <tr> <td> <p>64-bit Windows (or 64-bit IE)<\/p> <\/td> <td> <p>HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BFCACHE<\/p> <\/td> <\/tr> <\/tbody> <\/table> <p>Subkey FEATURE_BFCACHE may or may not be present. If it is not present, you should first create the subkey; create a new entry of DWORD type named iexplore.exe, and assign value 0 to it.<\/p><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"512\" height=\"66\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/unnamed-2.png\" alt=\"\" class=\"wp-image-24757\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/unnamed-2.png 512w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/unnamed-2-300x39.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li><b>Browser Zoom Level \u2013<\/b> In case you have changed the browser zoom level, please set it to 100% so that native mouse events can be set to the correct coordinates.<\/li><li><b>32-bit IEDriverServer.exe on the 64-bit machine \u2013<\/b> We had earlier mentioned about the performance issues with 64-bit IE WebDriver and we could witness the lag when they search for LambdaTest was performed on Duckduckgo. We replaced the 64-bit IEDriverServer.exe with 32-bit IEDriverServer.exe and the performance was perfectly fine!<\/li><\/ul>\n\n\n\n<p>We look at another example where interaction with the web locators is done to perform relevant actions. You can make use of the Inspect Element on IE or any other browser installed on your machine to get details about the web locators i.e. XPath, CSS Selector, Name, Link Text, ID, etc. We have made use of NAME and XPath locators to perform actions on those web elements.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.lambdatest.com\/blog\/complete-guide-for-using-xpath-in-selenium-with-examples\/\" target=\"_blank\" rel=\"noopener noreferrer\">Read More: Complete Guide For Using XPath In Selenium With Examples<\/a><\/p>\n\n\n\n<div>\n<div id=\"highlighter_410626\" class=\"syntaxhighlighter  perl\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"perl plain\">from selenium <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">webdriver<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"perl plain\">from <\/code><code class=\"perl functions\">time<\/code> <code class=\"perl keyword\">import<\/code> <code class=\"perl functions\">sleep<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"perl plain\">from selenium.webdriver.support <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">expected_conditions as EC<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"perl plain\">from selenium.webdriver.common.by <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">By<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"perl plain\">from selenium.common.exceptions <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">TimeoutException<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"perl plain\">from selenium.webdriver.support.ui <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">WebDriverWait<\/code><\/div>\n<div class=\"line number7 index6 alt2\">&nbsp;<\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"perl comments\"># Internet Explorer<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"perl plain\">driver = webdriver.Ie(executable_path=r<\/code><code class=\"perl string\">'location_of_IEDriverServer.exe'<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"perl plain\">driver.maximize_window()<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"perl plain\">driver.get(<\/code><code class=\"perl string\">\"<a href=\"https:\/\/www.lambdatest.com\">https:\/\/www.lambdatest.com<\/a>\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number12 index11 alt1\">&nbsp;<\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"perl keyword\">try<\/code><code class=\"perl plain\">:<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">myElem_1 = WebDriverWait(driver, 10).<\/code><code class=\"perl keyword\">until<\/code><code class=\"perl plain\">(EC.presence_of_element_located((By.CLASS_NAME, <\/code><code class=\"perl string\">'home-btn'<\/code><code class=\"perl plain\">)))<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl functions\">print<\/code><code class=\"perl plain\">(<\/code><code class=\"perl string\">\"Home Button click under progress\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">myElem_1.click()<\/code><\/div>\n<div class=\"line number17 index16 alt2\">&nbsp;<\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">myElem_2 = WebDriverWait(driver, 10).<\/code><code class=\"perl keyword\">until<\/code><code class=\"perl plain\">(EC.element_to_be_clickable((By.XPATH, <\/code><code class=\"perl string\">\"\/html\/body\/div[1]\/section\/div\/div[2]\/div\/form\/div[3]\/p\/a\"<\/code><code class=\"perl plain\">)))<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl functions\">print<\/code><code class=\"perl plain\">(<\/code><code class=\"perl string\">\"Login button click under progress\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">myElem_2.click()<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl functions\">sleep<\/code><code class=\"perl plain\">(10)<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"perl plain\">except TimeoutException:<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl functions\">print<\/code><code class=\"perl plain\">(<\/code><code class=\"perl string\">\"No element found\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number24 index23 alt1\">&nbsp;<\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"perl functions\">sleep<\/code><code class=\"perl plain\">(10)<\/code><\/div>\n<div class=\"line number26 index25 alt1\">&nbsp;<\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"perl plain\">driver.<\/code><code class=\"perl functions\">close<\/code><code class=\"perl plain\">()<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>As seen in the example above, a wait of 10 seconds is performed for each web element before a TimeOutException is raised if the element is not found.<\/p>\n\n\n\n<p>Now, that we know how to test IE on macOS and incorporate Selenium automation testing on IE. It is only natural to dwell on to Microsoft Edge browser! What should we make of Microsoft Edge considering the state of IE in 2019? Should Microsoft Edge browser be a part of your cross browser testing script? Let\u2019s find out.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Should I Include Microsoft Edge In My Browser Compatibility Testing?<\/h3>\n\n\n\n<p>Microsoft Edge is the default browser in Windows 10. This statement itself is enough to prove that web developers &amp; testers should not ignore Microsoft Edge browser while planning for browser compatibility testing. Windows 10 has close to 50% market share which means that Microsoft Edge is installed by default on those machines (<a href=\"https:\/\/www.computerworld.com\/article\/3199373\/windows-by-the-numbers-upgraders-press-pause.html\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Source<\/a>).<\/p>\n\n\n\n<p>Though users may install other popular browsers like Chrome, Firefox, etc. for browsing or another web-related work; the relevance of Microsoft Edge as far as browser compatibility testing is concerned cannot be ruled out. As seen in the Desktop Browser Market Share Worldwide graphic, the market share of Microsoft Edge browser us around 4.61% and this percentage would slowly rise with more penetration of Windows 10.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/stackcounter-1024x225.png\" alt=\"\" class=\"wp-image-24758\" width=\"768\" height=\"169\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/stackcounter-1024x225.png 1024w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/stackcounter-300x66.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/stackcounter-768x169.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/stackcounter.png 1186w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<p>So, Microsoft Edge is just as important for you to test for browser compatibility as IE. In coming years, the market share of Microsoft Edge browser is expected to rise. So, should Microsoft Edge be a part of your browser compatibility testing script?<\/p>\n\n\n\n<p>Yes, absolutely. But how can a user who is operating on macOS test on Edge browser? Let\u2019s find out.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How To Test Microsoft Edge on macOS?<\/h2>\n\n\n\n<p>Microsoft Edge has been officially made available for macOS users. It is not a final version though and is still in the testing phase. Microsoft updated the same in their <a href=\"https:\/\/blogs.windows.com\/msedgedev\/2019\/05\/20\/microsoft-edge-macos-canary-preview\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Windows Blog<\/a> on 21 May 2019:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Microsoft Edge for macOS will offer the same new browsing experience that we\u2019re previewing on Windows, with user experience optimizations to make it feel at home on a Mac. We are tailoring the overall look and feel to match what macOS users expect from apps on this platform.<\/p><\/blockquote>\n\n\n\n<p>You can download Microsoft Edge preview builds for macOS from <a href=\"https:\/\/www.microsoftedgeinsider.com\/en-us\/download?platform=macos\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">Microsoft Edge Insider Channels<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/microsoft-edge-insider-1024x514.png\" alt=\"\" class=\"wp-image-24759\" width=\"768\" height=\"386\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/microsoft-edge-insider-1024x514.png 1024w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/microsoft-edge-insider-300x151.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/microsoft-edge-insider-768x386.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/microsoft-edge-insider.png 1300w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<p>Other than that, if you own a macOS device &amp; wish to see your website on a Windows operating system through an Edge browser then you can always turn to cloud-based cross browser testing tool such as LambdaTest.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Automation Testing With Selenium &amp; Microsoft Edge<\/h2>\n\n\n\n<p>To get started with Selenium automation testing using Microsoft Edge, you need to install Selenium WebDriver for Edge from<a href=\"https:\/\/developer.microsoft.com\/en-us\/microsoft-edge\/tools\/webdriver\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\"> here<\/a>. You should select the appropriate WebDriver since there are options for Microsoft Edge (Chromium) and Microsoft Edge (EdgeHTML). Microsoft Edge (Chromium) or Microsoft Edge (Dev version) can be downloaded from <a href=\"https:\/\/www.microsoftedgeinsider.com\/en-us\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">here<\/a>. Since we are using Windows 10 machine for development &amp; testing, we already have Microsoft Edge pre-installed in it. In our case, we need to select the Selenium WebDriver for Microsoft Edge (EdgeHTML).<\/p>\n\n\n\n<p>Before downloading the WebDriver for Edge, you should check the OS build from System Settings. In our case, the OS build version is 17134.885 hence, we downloaded the WebDriver for Microsoft Edge with the Release 17134.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/image8.png\" alt=\"\" class=\"wp-image-24760\" width=\"662\" height=\"521\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/image8.png 882w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/image8-300x236.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/image8-768x604.png 768w\" sizes=\"(max-width: 662px) 100vw, 662px\" \/><\/figure><\/div>\n\n\n\n<p>You need to copy the download WebDriver i.e. MicrosoftWebDriver.exe to a particular location in the machine and append the path to the $PATH environment variable by executing the command set PATH=%PATH%;<\/p>\n\n\n\n<p>The Duckduckgo search example which was demonstrated earlier can be ported to work with Microsoft Edge WebDriver with few lines of change. Just replace IE WebDriver command with the command that invokes Microsoft Edge WebDriver and you are good to go.<\/p>\n\n\n\n<div>\n<div id=\"highlighter_34963\" class=\"syntaxhighlighter  perl\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">unittest<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"perl plain\">from selenium <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">webdriver<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"perl keyword\">import<\/code> <code class=\"perl functions\">time<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"perl plain\">from <\/code><code class=\"perl functions\">time<\/code> <code class=\"perl keyword\">import<\/code> <code class=\"perl functions\">sleep<\/code><\/div>\n<div class=\"line number5 index4 alt2\">&nbsp;<\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"perl plain\">from selenium.webdriver.support.ui <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">WebDriverWait<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"perl plain\">from selenium.webdriver.support <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">expected_conditions as EC<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"perl plain\">from selenium.webdriver.common.by <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">By<\/code><\/div>\n<div class=\"line number9 index8 alt2\">&nbsp;<\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"perl plain\">class SeachTest(unittest.TestCase):<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">def setUp(self):<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl comments\"># Creation of Edge WebDriver instance<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">self.driver = webdriver.Edge(executable_path=r<\/code><code class=\"perl string\">'location_of_MicrosoftWebDriver.exe'<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number14 index13 alt1\">&nbsp;<\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">def test_Search(self):<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">driver = self.driver<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">driver.maximize_window()<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">driver.get(<\/code><code class=\"perl string\">\"<a href=\"https:\/\/duckduckgo.com\/\">https:\/\/duckduckgo.com\/<\/a>\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">elem = WebDriverWait(driver, 20).<\/code><code class=\"perl keyword\">until<\/code><code class=\"perl plain\">(EC.element_to_be_clickable((By.NAME, <\/code><code class=\"perl string\">\"q\"<\/code><code class=\"perl plain\">)))<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">elem.send_keys(<\/code><code class=\"perl string\">\"Lambdatest\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">elem.submit()<\/code><\/div>\n<div class=\"line number22 index21 alt1\">&nbsp;<\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl functions\">sleep<\/code><code class=\"perl plain\">(10)<\/code><\/div>\n<div class=\"line number24 index23 alt1\">&nbsp;<\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">def tearDown(self):<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl comments\"># Close the browser.<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">self.driver.<\/code><code class=\"perl functions\">close<\/code><code class=\"perl plain\">()<\/code><\/div>\n<div class=\"line number28 index27 alt1\">&nbsp;<\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"perl keyword\">if<\/code> <code class=\"perl plain\">__name__ == <\/code><code class=\"perl string\">'__main__'<\/code><code class=\"perl plain\">:<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">unittest.main()<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>We have a look at another example of Selenium automation testing where the test framework used is Pytest. The framework can be installed by executing the command pip install pytest on the terminal. If you plan to take advantage of parallel execution, you can install the pytest-xdist plugin using the command pip install pytest-xdist. We make use of @pytest.fixture decorator with scope as a class to pass IE &amp; Edge browsers as arguments. Since two browsers are used in the test, we use the command pytest -n=2 so that execution of IE &amp; Microsoft Edge browser can occur in parallel.<\/p>\n\n\n\n<div>\n<div id=\"highlighter_401372\" class=\"syntaxhighlighter  perl\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">pytest<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"perl plain\">from selenium <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">webdriver<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"perl plain\">from selenium.webdriver.common.<\/code><code class=\"perl functions\">keys<\/code> <code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">Keys<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"perl plain\">from <\/code><code class=\"perl functions\">time<\/code> <code class=\"perl keyword\">import<\/code> <code class=\"perl functions\">sleep<\/code><\/div>\n<div class=\"line number5 index4 alt2\">&nbsp;<\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"perl variable\">@pytest<\/code><code class=\"perl plain\">.fixture(params=[<\/code><code class=\"perl string\">\"ie\"<\/code><code class=\"perl plain\">, <\/code><code class=\"perl string\">\"edge\"<\/code><code class=\"perl plain\">],scope=<\/code><code class=\"perl string\">\"class\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number7 index6 alt2\">&nbsp;<\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"perl plain\">def driver_init(request):<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl keyword\">if<\/code> <code class=\"perl plain\">request.param == <\/code><code class=\"perl string\">\"ie\"<\/code><code class=\"perl plain\">:<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl comments\"># Local webdriver implementation with Internet Explorer (IE)<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">web_driver = webdriver.Ie(executable_path=r<\/code><code class=\"perl string\">'location_of_IEDriverServer.exe'<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl keyword\">if<\/code> <code class=\"perl plain\">request.param == <\/code><code class=\"perl string\">\"edge\"<\/code><code class=\"perl plain\">:<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl comments\"># Local webdriver implementation with Microsoft Edge browser (Edge)<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">web_driver = webdriver.Edge(executable_path=r<\/code><code class=\"perl string\">'location_of_MicrosoftWebDriver.exe'<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">request.cls.driver = web_driver<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">yield<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">web_driver.<\/code><code class=\"perl functions\">close<\/code><code class=\"perl plain\">()<\/code><\/div>\n<div class=\"line number18 index17 alt1\">&nbsp;<\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"perl variable\">@pytest<\/code><code class=\"perl plain\">.mark.usefixtures(<\/code><code class=\"perl string\">\"driver_init\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"perl plain\">class BasicTest:<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">pass<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"perl plain\">class Test_URL(BasicTest):<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">def test_open_url(self):<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">self.driver.get(<\/code><code class=\"perl string\">\"<a href=\"https:\/\/www.lambdatest.com\/\">https:\/\/www.lambdatest.com\/<\/a>\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl functions\">print<\/code><code class=\"perl plain\">(self.driver.title)<\/code><\/div>\n<div class=\"line number26 index25 alt1\">&nbsp;<\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl functions\">sleep<\/code><code class=\"perl plain\">(5)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>Shown below is the snapshot of the test execution where we can see that the instances of IE &amp; Microsoft Edge browsers were initiated in parallel.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"117\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/snapshot-1024x117.png\" alt=\"\" class=\"wp-image-24761\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/snapshot-1024x117.png 1024w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/snapshot-300x34.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/snapshot-768x87.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/snapshot.png 1343w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>As you have seen from the examples, cross browser testing performed on local infrastructure always has limitations since you cannot perform tests on browsers of different versions e.g. Testing on IE versions 8, 9, 10, etc. on the same machine can be a big task (if not an impossible one). Also, the test of IE on Mac has many overheads around installation and efficiency of tests since they are executed in a virtual environment. Though you can have a remote Selenium Grid that can house different combinations of browsers, operating systems, and devices; it might be a scalable &amp; economical approach. You are sure to hit a roadblock after some point when the product quality &amp; features have improved and you might require a better &amp; faster setup to scale up the efficiency in the test process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Selenium Automation Testing on the Cloud<\/h3>\n\n\n\n<p>Irrespective of whether you are doing cross browser testing using IE, Microsoft Edge on Windows, macOS, Linux, etc.; a more viable approach is to shift to a cloud based cross-browser testing platform like LambdaTest. Using LambdaTest, you can test your web product against 2000+ real browsers and operating systems online. By making use of parallel testing with Selenium Grid on-cloud, you can execute tests at a much faster pace thereby reducing the overall turn-around involved in testing.<\/p>\n\n\n\n<p>Here is how you can leverage LambdaTest cloud infrastructure to enhance testing of your website\/web application. To get started, you need to create an account on LambdaTest. Once your account is created, you should make a note of your username &amp; access token from <a href=\"https:\/\/accounts.lambdatest.com\/profile\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/accounts.lambdatest.com\/profile<\/a> as that combination will be used to access the remote Selenium Grid on LambdaTest.<\/p>\n\n\n\n<p>You can port the existing implementation that uses local Selenium WebDriver to Remote Selenium WebDriver on LambaTest with minimal changes in the code. The examples of Selenium automation testing that we have looked into so far used local Selenium WebDriver. Once you have logged into your LambdaTest account, you can have a look at the Automation tests that were triggered by you in the <a href=\"https:\/\/automation.lambdatest.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Automation Tab<\/a>. Each test has a unique test-id associated with it for easy identification. In our case, we can have two concurrent sessions that can be executed in parallel. This speeds up the entire test process &amp; results in shorter turnaround time with the faster go-to-market launch.<\/p>\n\n\n\n<p>For demonstration, we port the earlier example that used the pytest framework to remote Selenium Grid on LambdaTest. We perform the tests using IE 8.0 on Windows 7 and Microsoft Edge 15.0 on Windows 10. The capabilities can be generated using the LambdaTest\u2019s <a href=\"https:\/\/www.lambdatest.com\/capabilities-generator\/\" target=\"_blank\" rel=\"noopener noreferrer\">Desired Capabilities Generator<\/a>. Select the appropriate browser &amp; OS versions and generate the capabilities for Python programming language.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/Selenium-Automation-Testing-1024x393.png\" alt=\"\" class=\"wp-image-24762\" width=\"768\" height=\"295\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/Selenium-Automation-Testing-1024x393.png 1024w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/Selenium-Automation-Testing-300x115.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/Selenium-Automation-Testing-768x295.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/Selenium-Automation-Testing.png 1347w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<p>Now that the capabilities are generated, we make the relevant changes to accommodate the generated capabilities and accessing the remote Selenium Grid on LambdaTest using the username &amp; access key combination.<\/p>\n\n\n\n<div>\n<div id=\"highlighter_326695\" class=\"syntaxhighlighter  perl\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">01<\/div>\n<div class=\"line number2 index1 alt1\">02<\/div>\n<div class=\"line number3 index2 alt2\">03<\/div>\n<div class=\"line number4 index3 alt1\">04<\/div>\n<div class=\"line number5 index4 alt2\">05<\/div>\n<div class=\"line number6 index5 alt1\">06<\/div>\n<div class=\"line number7 index6 alt2\">07<\/div>\n<div class=\"line number8 index7 alt1\">08<\/div>\n<div class=\"line number9 index8 alt2\">09<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<div class=\"line number39 index38 alt2\">39<\/div>\n<div class=\"line number40 index39 alt1\">40<\/div>\n<div class=\"line number41 index40 alt2\">41<\/div>\n<div class=\"line number42 index41 alt1\">42<\/div>\n<div class=\"line number43 index42 alt2\">43<\/div>\n<div class=\"line number44 index43 alt1\">44<\/div>\n<div class=\"line number45 index44 alt2\">45<\/div>\n<div class=\"line number46 index45 alt1\">46<\/div>\n<div class=\"line number47 index46 alt2\">47<\/div>\n<div class=\"line number48 index47 alt1\">48<\/div>\n<div class=\"line number49 index48 alt2\">49<\/div>\n<div class=\"line number50 index49 alt1\">50<\/div>\n<div class=\"line number51 index50 alt2\">51<\/div>\n<div class=\"line number52 index51 alt1\">52<\/div>\n<div class=\"line number53 index52 alt2\">53<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">pytest<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"perl plain\">from selenium <\/code><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">webdriver<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"perl plain\">from selenium.webdriver.common.<\/code><code class=\"perl functions\">keys<\/code> <code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">Keys<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"perl plain\">from <\/code><code class=\"perl functions\">time<\/code> <code class=\"perl keyword\">import<\/code> <code class=\"perl functions\">sleep<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"perl keyword\">import<\/code> <code class=\"perl plain\">urllib3<\/code><\/div>\n<div class=\"line number6 index5 alt1\">&nbsp;<\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"perl comments\">############# Changes for porting local Selenium WebDriver implementation to LambdaTest #############<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"perl comments\">#Set capabilities for testing on IE and Microsoft Edge<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"perl plain\">edge_capabilities = {<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"build\"<\/code> <code class=\"perl plain\">: <\/code><code class=\"perl string\">\"Build for testing on Microsoft Edge\"<\/code><code class=\"perl plain\">,<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"name\"<\/code> <code class=\"perl plain\">: <\/code><code class=\"perl string\">\"Microsoft Edge Testing\"<\/code><code class=\"perl plain\">,<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"platform\"<\/code> <code class=\"perl plain\">: <\/code><code class=\"perl string\">\"Windows 10\"<\/code><code class=\"perl plain\">,<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"browserName\"<\/code> <code class=\"perl plain\">: <\/code><code class=\"perl string\">\"MicrosoftEdge\"<\/code><code class=\"perl plain\">,<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"version\"<\/code> <code class=\"perl plain\">: <\/code><code class=\"perl string\">\"15.0\"<\/code><code class=\"perl plain\">,<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"visual\"<\/code> <code class=\"perl plain\">: True<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"perl plain\">}<\/code><\/div>\n<div class=\"line number17 index16 alt2\">&nbsp;<\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"perl plain\">ie_capabilities = {<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"build\"<\/code> <code class=\"perl plain\">: <\/code><code class=\"perl string\">\"Build for testing on Internet Explorer\"<\/code><code class=\"perl plain\">,<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"name\"<\/code> <code class=\"perl plain\">: <\/code><code class=\"perl string\">\"Internet Explorer Testing\"<\/code><code class=\"perl plain\">,<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"platform\"<\/code> <code class=\"perl plain\">: <\/code><code class=\"perl string\">\"Windows 7\"<\/code><code class=\"perl plain\">,<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"browserName\"<\/code> <code class=\"perl plain\">: <\/code><code class=\"perl string\">\"Internet Explorer\"<\/code><code class=\"perl plain\">,<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"version\"<\/code> <code class=\"perl plain\">: <\/code><code class=\"perl string\">\"8.0\"<\/code><code class=\"perl plain\">,<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"visual\"<\/code> <code class=\"perl plain\">: True,<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl string\">\"ie.compatibility\"<\/code> <code class=\"perl plain\">: 11001<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"perl plain\">}<\/code><\/div>\n<div class=\"line number27 index26 alt2\">&nbsp;<\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"perl comments\"># Obtain the credentials from <a href=\"https:\/\/accounts.lambdatest.com\/profile\">https:\/\/accounts.lambdatest.com\/profile<\/a><\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"perl plain\">user_name = <\/code><code class=\"perl string\">\"user-name\"<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"perl plain\">app_key = <\/code><code class=\"perl string\">\"access-key\"<\/code><\/div>\n<div class=\"line number31 index30 alt2\">&nbsp;<\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"perl variable\">@pytest<\/code><code class=\"perl plain\">.fixture(params=[<\/code><code class=\"perl string\">\"ie\"<\/code><code class=\"perl plain\">, <\/code><code class=\"perl string\">\"edge\"<\/code><code class=\"perl plain\">],scope=<\/code><code class=\"perl string\">\"class\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number33 index32 alt2\">&nbsp;<\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"perl plain\">def driver_init(request):<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">remote_url = <\/code><code class=\"perl string\">\"<a href=\"https:\/\/\">https:\/\/<\/a>\"<\/code> <code class=\"perl plain\">+ user_name + <\/code><code class=\"perl string\">\":\"<\/code> <code class=\"perl plain\">+ app_key + <\/code><code class=\"perl string\">\"@hub.lambdatest.com\/wd\/hub\"<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl keyword\">if<\/code> <code class=\"perl plain\">request.param == <\/code><code class=\"perl string\">\"ie\"<\/code><code class=\"perl plain\">:<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl comments\"># Remote webdriver implementation with Internet Explorer (IE)<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">web_driver = webdriver.Remote(command_executor=remote_url, desired_capabilities=ie_capabilities)<\/code><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl keyword\">if<\/code> <code class=\"perl plain\">request.param == <\/code><code class=\"perl string\">\"edge\"<\/code><code class=\"perl plain\">:<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl comments\"># Remote webdriver implementation with Microsoft Edge browser (Edge)<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">web_driver = webdriver.Remote(command_executor=remote_url, desired_capabilities=edge_capabilities)<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">request.cls.driver = web_driver<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">yield<\/code><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">web_driver.<\/code><code class=\"perl functions\">close<\/code><code class=\"perl plain\">()<\/code><\/div>\n<div class=\"line number46 index45 alt1\">&nbsp;<\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"perl variable\">@pytest<\/code><code class=\"perl plain\">.mark.usefixtures(<\/code><code class=\"perl string\">\"driver_init\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"perl plain\">class BasicTest:<\/code><\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">pass<\/code><\/div>\n<div class=\"line number50 index49 alt1\"><code class=\"perl plain\">class Test_URL(BasicTest):<\/code><\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">def test_open_url(self):<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl plain\">self.driver.get(<\/code><code class=\"perl string\">\"<a href=\"https:\/\/www.lambdatest.com\/\">https:\/\/www.lambdatest.com\/<\/a>\"<\/code><code class=\"perl plain\">)<\/code><\/div>\n<div class=\"line number53 index52 alt2\"><code class=\"perl spaces\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><code class=\"perl functions\">print<\/code><code class=\"perl plain\">(self.driver.title)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n\n\n\n<p>As seen in the source code, we have added capabilities of IE and Microsoft Edge browser. We login to the LambdaTest cloud platform using the username and access key. The remote URL used for accessing the LambdaTest platform and capabilities are then passed as arguments to the webdriver.Remote() API. Below is a snapshot of the execution, you can also check the Automation Tab on LambdaTest to get more information about the status of the tests.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/automation-testing-1024x143.png\" alt=\"\" class=\"wp-image-24763\" width=\"768\" height=\"107\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/automation-testing-1024x143.png 1024w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/automation-testing-300x42.png 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/automation-testing-768x107.png 768w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/08\/automation-testing.png 1346w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What Is Your Take At Microsoft Edge &amp; IE?<\/h2>\n\n\n\n<p>Though Internet Explorer (IE) is deprecated, you cannot ignore cross browser testing on IE. On the other hand, the market share of Microsoft Edge is increasing steadily. Irrespective of whether you are doing development\/testing on macOS, you should give priority to test IE on Mac. We have discussed multiple ways to test IE on mac, and the one with minimal effort and maximum throughput would be to go for a cloud-based <a href=\"https:\/\/www.lambdatest.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">cross browser testing tool<\/a> such as LambdaTest. With LambdaTest, you can perform Selenium automation testing to verify your web application\u2019s rendering over 2000+ real browsers &amp; browser versions running across different operating systems. This helps in speeding up every step involved in cross browser testing of your website\/web application as you get all the test environments configured &amp; readily made available for you to run your automation scripts.<\/p>\n\n\n\n<p>I would love to know your opinion on the state of IE &amp; Edge. Do you include them in your test cycles? Where there any specific challenges you faced while executing Selenium automation testing with IE &amp; Edge? Let me know in the comment section. Happy testing! <\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a href=\"https:\/\/accounts.lambdatest.com\/register\/\"><img decoding=\"async\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/05\/Adword-Cyber2-1.jpg\" alt=\"JavaScript Tips\" class=\"wp-image-24608\" width=\"698\" height=\"135\" srcset=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/05\/Adword-Cyber2-1.jpg 930w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/05\/Adword-Cyber2-1-300x58.jpg 300w, https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2019\/05\/Adword-Cyber2-1-768x149.jpg 768w\" sizes=\"(max-width: 698px) 100vw, 698px\" \/><\/a><\/figure>\n\n\n\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>Published on Web Code Geeks with permission by Himanshu Sheth, partner at our <a href=\"\/\/www.webcodegeeks.com\/join-us\/wcg\/\" target=\"_blank\" rel=\"noopener noreferrer\">WCG program<\/a>. See the original article here: <a href=\"https:\/\/www.lambdatest.com\/blog\/selenium-automation-testing-on-internet-explorer-ie-edge\/\" target=\"_blank\" rel=\"noopener noreferrer\">Selenium Automation Testing on Internet Explorer (IE) &amp; Edge<\/a><\/p>\n<p>Opinions expressed by Web Code Geeks contributors are their own.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Design and Usability are two important factors when you are building a consumer web product\/web application. You might need to step into the shoes of the customers in order to tackle different usability problems. However, you may have to fill in a lot of shoes considering the fact that not all your customers would be &hellip;<\/p>\n","protected":false},"author":14570,"featured_media":14656,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[573,339],"class_list":["post-24747","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-development","tag-automation","tag-selenium"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Selenium Automation Testing on Internet Explorer (IE) &amp; Edge - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"Interested to learn about Selenium Automation? Check our article explaining how to perform Selenium Automation Testing on Internet Explorer\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Selenium Automation Testing on Internet Explorer (IE) &amp; Edge - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about Selenium Automation? Check our article explaining how to perform Selenium Automation Testing on Internet Explorer\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-29T09:15:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/09\/selenium-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Himanshu Sheth\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Himanshu Sheth\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"29 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/\"},\"author\":{\"name\":\"Himanshu Sheth\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/2f4d99a951ed3e806fd90b90ec4e5075\"},\"headline\":\"Selenium Automation Testing on Internet Explorer (IE) &amp; Edge\",\"datePublished\":\"2019-08-29T09:15:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/\"},\"wordCount\":4643,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/09\/selenium-logo.jpg\",\"keywords\":[\"Automation\",\"Selenium\"],\"articleSection\":[\"Web Dev\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/\",\"name\":\"Selenium Automation Testing on Internet Explorer (IE) &amp; Edge - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/09\/selenium-logo.jpg\",\"datePublished\":\"2019-08-29T09:15:42+00:00\",\"description\":\"Interested to learn about Selenium Automation? Check our article explaining how to perform Selenium Automation Testing on Internet Explorer\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/09\/selenium-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/09\/selenium-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web Dev\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/web-development\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Selenium Automation Testing on Internet Explorer (IE) &amp; Edge\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/2f4d99a951ed3e806fd90b90ec4e5075\",\"name\":\"Himanshu Sheth\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3159ffad1475b52a9afe1e7f2d6c624d5357a63316110574ec53e90fec413621?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3159ffad1475b52a9afe1e7f2d6c624d5357a63316110574ec53e90fec413621?s=96&d=mm&r=g\",\"caption\":\"Himanshu Sheth\"},\"sameAs\":[\"https:\/\/www.lambdatest.com\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/himanshu-sheth\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Selenium Automation Testing on Internet Explorer (IE) &amp; Edge - Web Code Geeks - 2026","description":"Interested to learn about Selenium Automation? Check our article explaining how to perform Selenium Automation Testing on Internet Explorer","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/","og_locale":"en_US","og_type":"article","og_title":"Selenium Automation Testing on Internet Explorer (IE) &amp; Edge - Web Code Geeks - 2026","og_description":"Interested to learn about Selenium Automation? Check our article explaining how to perform Selenium Automation Testing on Internet Explorer","og_url":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2019-08-29T09:15:42+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/09\/selenium-logo.jpg","type":"image\/jpeg"}],"author":"Himanshu Sheth","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Himanshu Sheth","Est. reading time":"29 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/"},"author":{"name":"Himanshu Sheth","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/2f4d99a951ed3e806fd90b90ec4e5075"},"headline":"Selenium Automation Testing on Internet Explorer (IE) &amp; Edge","datePublished":"2019-08-29T09:15:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/"},"wordCount":4643,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/09\/selenium-logo.jpg","keywords":["Automation","Selenium"],"articleSection":["Web Dev"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/","url":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/","name":"Selenium Automation Testing on Internet Explorer (IE) &amp; Edge - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/09\/selenium-logo.jpg","datePublished":"2019-08-29T09:15:42+00:00","description":"Interested to learn about Selenium Automation? Check our article explaining how to perform Selenium Automation Testing on Internet Explorer","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/09\/selenium-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2016\/09\/selenium-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/web-development\/selenium-automation-testing-internet-explorer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Web Dev","item":"https:\/\/www.webcodegeeks.com\/category\/web-development\/"},{"@type":"ListItem","position":3,"name":"Selenium Automation Testing on Internet Explorer (IE) &amp; Edge"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/2f4d99a951ed3e806fd90b90ec4e5075","name":"Himanshu Sheth","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3159ffad1475b52a9afe1e7f2d6c624d5357a63316110574ec53e90fec413621?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3159ffad1475b52a9afe1e7f2d6c624d5357a63316110574ec53e90fec413621?s=96&d=mm&r=g","caption":"Himanshu Sheth"},"sameAs":["https:\/\/www.lambdatest.com"],"url":"https:\/\/www.webcodegeeks.com\/author\/himanshu-sheth\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/24747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/14570"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=24747"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/24747\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/14656"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=24747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=24747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=24747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}