using ie9 as an ie7 - webbrowser-control

i am using ie9 but sometimes i have to use ie7 or ie8 and i don't want to uninstal it can i turn ie9 to ie7 if it is needed?

I don't currently have IE9 so I can't verify, but I have installed it temporarily in the past and believe this functionality exists.
In, IE, press F12 to bring up the Developer Tools. Towards the right side of the toolbar in this popup window, there should be a "Browser Mode" or something, which you can change between different versions of IE.

If you want to test web pages try IETester http://www.my-debugbar.com/wiki/IETester/HomePage you have from version 5 to 8 and if you want it for normal use try to install IE in seprate folders.

Related

Can you change Visual Studio 2022's default browser for Dockerised ASP .NET Core applications?

When debugging my ASP .NET Core Web API application in Visual Studio 2022, I have the Docker configuration set to launch a browser:
This browser defaults to Edge. Is there a way to change this, to Firefox for example? That is my browser of choice and I would prefer it to simply open a new tab in an existing instance of that rather than an entirely separate Edge window.
Firefox is set as my default browser.
Thanks.
You can choose a default browser to use with the docker profile but it's not clear how to modify the list of possible browsers or if you can modify the launch settings for those browsers... anyway, from the debug toolbar menu you'll see the very small drop down menu arrow. Clicking on that gives you a series of drop down menus that lets you choose a browser.
Note the "Browse With..." does not work for me. The project rebuilds and nothing happens when I click that. And "Select Web Browsers..." gives a limited choice of chrome, edge, IE.
Turns out it does seem to use the default browser.
This is a new install of Win 11, and I had installed Firefox within the same session as my attempted debugging with it - a reboot seemed to result in VS using it as expected.
The default browser behaviour is documented here.

Selenium Firefox - Browser is under remote control

I am using Firefox 55.0.2 (64-bit) with selenium. The code works fine, however I see an icon in Firefox saying Browser is under remote control and the URL is highlighted in orange as shown in below screen shot.
Is there a way to disable this message in Firefox?
You wouldn't get that in the previous versions of firefox (version 45 or below). Its just an update and cannot be disabled. Even google chrome shows a message(chrome is autmated by a software). or you could just use the previous versions of the browser.
Maybe not related directly to selenium use,
But in case of getting stuck in "under remote control" after having launched firefox with a kind of:
firefox -marionette -foreground -no-remote -profile /path/to/existing/profile
It's because this way it toggles marionette:true in about:config,
Thanks to Firefox Stuck in Remote Control Mode for pointing to this marionette config entry

How to change browser mode on IE with selenium?

I'm trying to run a different browser mode on IE with selenium using c#. Here's some code:
var ieWebDriver = new InternetExplorerDriver(#"PATHTOWEBDRIVER");
ieWebDriver.Keyboard.SendKeys(Keys.F12);
ieWebDriver.Keyboard.SendKeys(Keys.LeftAlt);
ieWebDriver.Keyboard.SendKeys("b");
ieWebDriver.Keyboard.SendKeys(Keys.NumberPad7);
I can open the developer tools (f12) but I'm not able to change the browser mode. Is IE preventing this due security? if so, are there any other ways to render content with a lower IE version?
thanks
No. The IEDriver is going to launch whatever IE is installed on the machine.
Changing the 'browser mode' is not a true representation of that version you are changing it to. IE9 on IE7 Standards Mode is not a true version of IE7.
Thus, you are stuck in a problem. You want to test different versions of IE, how do you do it?
The problem is that Windows let's you only have one IE version on a Windows PC at any one time. Yes, there are hacks and programs around to get multiple versions (IE5 and above) to run on a single machine, but they are hacks. Hacks which are not going to work all that well, and still, even with this, you wouldn't even be able to give the IEDriverServer the flexiblity to do this.
You will have to have seperate Windows machines.
A workaround, which again is a hack, is to set browser emulation mode in the registry, as documented in SO question.
Note that in the above question, the accepted answer is not going to work but the other answer may do. As note the comment on that answer, is by the maintainer of the IEDriver itself, advising strongly against this.
Another workaround, I have not tested, is perhaps use the native C# Keyboard.SendKeys, as documented here in MSDN. Am unsure if it will work (don't think anyone has ever ried it), but it is another option.
Selenium supports cross-browser testing of different versions of the same browser, but it is not achieved by switching the version in the Browser Mode in F12 Tools.
See https://code.google.com/p/selenium/wiki/Grid2
You can set up virtual machines with different versions of IE that work as Selenium nodes and use Selenium Hub to connect to them. Let's say you have a virtual machine with Windows 7 which has IE9 installed. You would start a Selenium node there and specify that it accepts requests for IE9 tests. You would then create InternetExplorerDriver for version 9, connect to the hub and run the test. The hub finds out the node with IE9 and runs the test there.
Related post here:
https://stackoverflow.com/a/8524216/1080590
This is of course different to what you're trying to do on a single machine, but it's more reliable and prevents you from extra management of your local IE instance.

Can I change the rendering engine of the WebBrowser control to an older version?

i have an application with a webbrowsercontrol. this webbrowsercontrol is going to load a page that is not compatible with IE9. (cannot change this because its produced by somebody else) By default VB.NET 2010's webbrowser control uses IE9 renderengine, and can run in some sort of compatibility mode. unfortunately even in compatibility mode the page do not work. is there are way to use a webbrowser control with a genuine IE7 or IE8 render engine? thanks
UPDATE
explaining the problem: i have a page with a JAVA applet inside. this java applet has a popup opening with a textbox. this textbox is forced to stay in front until closed. this works fine in IE7 and IE8. in IE9 however if i move the browser window or access any other application this messagebox jumps to the back. and cant be clicked anymore. my webbrowser (IE9 running any emulation) does not work. it beheaves as if it still would be on IE9 even if i emulate IE7 or IE8.
is there are way to use a webbrowser control with a genuine IE7 or IE8 render engine?
Yes, but it requires that you downgrade the version of Internet Explorer that is installed on the computer to version 7 or 8, which doesn't make for a friendly installation experience.
The issue is that the WebBrowser control always uses the version of IE that is installed on the computer because it simply delegates rendering to the native library shdocvw.dll, the same one that is used by IE itself. In your case, that appears to be IE 9. However, by default, it also runs in IE 7 compatibility mode. You can change this by editing the registry, but you cannot change the version of the rendering engine.
And unfortunately, this means you're out of luck, because running multiple versions of IE on a single computer is not and has never been a supported configuration. It can be accomplished for testing purposes, but it requires additional software and the versions don't play nicely together. Certainly not nicely enough for one to support the standalone IE browser while the other drives the .NET WebBrowser control.
Fixing the code to work properly with IE 9 is the best option. IE 9 represents Microsoft's slow progression towards a standards-compliant browser, and although it still has some quirks, it is worth supporting. I know you said that the website code is maintained by "someone else", but I recommend filing a support request with them—their code is buggy and needs to be fixed. If you (or they) need help with this, they can ask some of our code ninjas web standards experts here on Stack Overflow.
Alternatively, you could explore replacing the WebBrowser control with an alternative control. There are several good ones for the .NET Framework, wrapping the rendering engines used by other popular browsers. For example:
WebKit .NET is a wrapper for the WebKit engine, used by Google Chrome and Apple Safari.
GeckoFX is a wrapper for the Gecko rendering engine, used by Mozilla Firefox.
MozNet is an alternative wrapper for Gecko.
Unfortunately, if the code you're dealing with is so badly written that IE 9's feeble attempt at standards-compliance brings it to its knees, it's unlikely that switching to the rendering engine for another even more standards-compliant browser will bring much success.

How can i test my webpage in different web browsers

I am designing my webpage and testing it in my default browsers that is IE8 and firefox 3.0.
how can i test it with lower version. Is there anything which i can use to test in all versions.
Iam having problem with height setting with different version of IE.
for example my div height is 300px; when i view it in IE8 it looks okay, in IE6 is looks okay but it shows less space in IE7. How can i adjust that.
Any suggestion.
http://www.browsershots.org will deal with whether the layout is as you expect.
If you want to test functionality, then you'll find virtual machines to be your friend.
I trust this Microsoft Expression Web SuperPreview for Windows Internet Explorer
You can use selenium for functional web application testing. It is a great tool..
Try using an application called IETester: http://www.my-debugbar.com/wiki/IETester/HomePage
It's unstable and buggy as hell but you can quickly test your page in IE6, IE7 and IE8 and even IE5.5 so it's worth having it around.
IE10 has a special section in their developer tools called 'Emulation' which lets you select the browser in which you want the page to be tested in.