Given that the customer insists, I'd recommend using a virtual environment with IE5 installed, and then search for automation solutions that can work in that environment. This will be a challenge: you will need something that can operate on the elderly operating system (I think XP can run IE5, but I'm not sure about anything newer) and preferably something ...
Another approach (or part of one).
Before proceeding ask for a sign-off on a document that clearly states the security risk this presents to the organization and its customers and that they acknowledge that risk. This might get more attention, though it is obviously a little aggressive (or may be perceived to be that way). Adjust approach as needed for the ...
Short answer: Yes it is a bad practise, unless you have a very very very good reason, do not use implicit wait.
This Stack Overflow answers really puts the difference in great detail. (read this!)
I once had someone on my team who thought it was a good idea, until I started researching why all our tests had such a long starting time. Somewhere in our setup ...
The main differences between Appium and AndroidDriver/iPhoneDriver are architectural.
The AndroidDriver/iPhoneDriver work the same basic way - they are applications you launch on the phone that create a webview that you can remote control with selenium. The limitations to this approach are:
No control over hardware/operating system.
Webviews are not a real ...
These days, I'd say Selenium RC is not worth learning unless you have a specific need for it--for example, to work with legacy test code that uses it.
I don't think it will give you a significantly better appreciation of the Selenium architecture. You can get that by exploring the Selenium code base if you have an interest.
If you the know WebDriver API ...
This is how I would debug a Selenium session to find out what is happening:
Step-by-step debugging: Most IDE's allow you todo step-by-step debugging, you could set a break point just before the point you want to investigate. This will pause the execution of the test and lets you examine the browser with its own tools. You can step thru each line of code one ...
In our last project we also evaluated different tools among these were also Cypress and Selenium. At the end we decided for Selenium, because we were testing front end applications and for us Cross-Browser testing was one of the most important reasons, why we made the decision for selenium. Furthermore our test management had the requirement to integrate one ...
According to The WebDriver Sampler: Your Top 10 Questions Answered article the information can be obtained from Selenium Changelog, for instance for Java client libraries:
Weakening platform restriction to enable 64-bit support
Fixing closed window handling in FF45
So my expectation is that version 2.52 and ...
Steps to work with tabs in the same browser:
Open a new tab using Ctrl + t
Driver control automatically switches to the newly opened tab
Perform the required operations here.
Next switch back to the old tab using Ctrl + Tab. You need to keep pressing this unless you reach the desired tab.
Once the desired tab is reached, then perform the operations in that ...
Probably not, mainly because:
WebDriver is a W3C Spec
WebDriver supports all major programming languages
WebDriver is supported by all major browser vendors
WebDriver is 100% open-source
Cypress has commercial owners and for example "Test parallelization" is not in their open-source offering.
IMHO, a team lead who is a developer with less knowledge in testing, is the wrong kind of person to be selecting a test tool.
Do you have any QA Professionals on your team - perhaps someone with test tool experience? Or, lacking that do you have anyone on the team who will actually be tasked with using a test tool? I would suggest you turn to them.
Quite simply No!
WebDriver was a project in its own right before it merged with Selenium so looking at the Selenium RC codebase and API is not going to give you any insight as to why certain decisions were made inside WebDriver.
Selenium RC is currently deprecated, so if you do start learning it you are learning something that is no longer supported and not ...
We have found that dealing with third party software in CI/dev environments was a great source of intermittency/failure and pain.
So in our CI environments, we always create stub services for third parties.
A stub service is basically a fake API service that you control, that behaves the same (or similar) to how the real service does.
I would recommend ...
Selenium webdriver is W3C standard for browser automation, so any "better alternative" is a niche solution.
"Record and play" tools may generate "tests" for you. Of course you will lose all the benefits of concise solution which you can get by using real programming language.
Script may for example set up correct date (say, 1 hour from now), can wait in ...
This is going to be blunt. I don't know a not-blunt way to say this.
First, learn to code. Working with Selenium, no matter what your toolkit happens to be, is writing code. If you don't understand the code or the principles behind the code, you will be constantly frustrated, and worse, you will irritate your peers with what will seem to experienced coders ...
Yes, Page Objects seem the right direction to encapsulate the frame in frames details from the test.
Page objects are a classic example of encapsulation - they hide the
details of the UI structure and widgetry from other components (the
var page = new Page();
I would say it is always a good idea from the standpoint of automated tests development efficiency. Unused attributes (you call them tags but they are rather the attributes) cannot be really considered as disadvantage since they have really no impact (in most of the cases) to the functionality.
The only disadvantage is the dev effort growing since adding ...
Putting test-specific code in production adds complexity to the production code and only helps QA. Instead, use it as an opportunity to make the production code better designed and more flexible for everyone.
In your example, the problem is that it's difficult and fragile to refer to the menu link. That is a problem which will ...
In your comment you mentioned that the element is within a <frameset> \ <frame>. To work with any element within a frame, you need to first switch the context of the driver from the main page to that frame:
In this example "foo" would be the name of the iframe. You can also do it by index if the frame has no name ...
Webdriver is not only more modern. It is future W3C standard.
Being able to click on hidden links seems like a misfeature.
I would use old version only if newer version was seriously lacking important features without which I cannot live.
The JSON Wire Protocol is on it's way to becoming accepted as a W3C standard. This means that moving forward, the vendors behind browsers will have much more incentive to implement and maintain implementations for their browsers. Some vendors such as Mozilla and Microsoft have already taken over maintenance of the drivers used by Firefox and Edge. I heard ...
Yes, you can use NUnit for functional testing. But still it is a unit-testing framework. No, you are not creating unit-tests by using a unit-testing framework to write functional tests. A unit-test is testing just a single methods input and output, by writing end-2-end tests it by definition cannot be a unit-test. :)
Unit testing frameworks are often ...
Does your competitor offer something similar and if not, why not?
Really in business nothing is free.
Charge extra upfront during develop to cover the costs longterm
Offer a subscription on maintenance
Offer todo maintenance as long you get new work from the client
In the past I have hired some contractors to help us with test-automation. Mostly this is ...
Assuming this decision is up to you, if you think you can easily maintain the existing scripts in the short term, 'free' might be reasonable to help build the relationship with this client. However, I would scope the length of time you will do this and getting a plan in place to transfer the knowledge to the client for general maintenance (anything long ...
This is an incorrect assumption. A webpage loads as follows in generic terms:
Server content is received by the browser.
Rendering begins starting with objects and then styles from a layout as in all at once and if you slowed it down you would see a pixelated progression as it took shape starting with the content areas and then the objects and then the ...
It will depend on your circumstances.
Generally I consider categories such as:
common identifiers used throughout the application. Examples may include login, logout, help, submit button, etc.
identifiers that are used by forms and shared between different workflows
identifiers that are specific to the data that a given workflow collects
identifier that ...