24

Why test in IE5 if the customer isn't using it? It doesn't sound like they actually want IE5 support. They just want it to work. Test in IE11 Compatibility mode, as that's what they use.


17

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 ...


16

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 ...


12

Look around on the internet, e.g. ebay, for Windows machines that are 15-20 years old. I don't like this answer but given the crazy situation I am suggesting it.


11

my colleagues suggest me to learn and create a fully functional - generic framework which any team can use? I suggest you don't. Your coworkers suggest you to start over-engineering. It is fine to experiment. Automate a test, automate another one. Maybe a reusable abstraction emerges. Maybe this becomes a reusable framework. Practise the YAGNI (You aren'...


6

You can either: Look for all element that match certain search criteria: if driver.find_elements_by_css_selector(my_locator): # No element found here Catch an exception when searching for a single instance: try: webdriver.find_element_by_css_selector(my_locator) except NoSuchElementException: # No element found here


6

Some options in my order of preference: Probably you do not want to test the TwoFactorAuth, but you want to test the application behind it. Consider building a backdoor which is only enabled in the test environment, so that you can bypass the TFA. Generate the OTP from code with OTP.Net: https://dev.to/j_sakamoto/selenium-testing---how-to-sign-in-to-two-...


5

You can use Chrome DevTools Protocol. Try with below steps: Add path of Chrome executable to environment variable PATH. Launch Chrome with custom flag, and open a port for remote debugging chrome.exe --remote-debugging-port=1111 --user-data-dir="C:\selenum\AutomationProfile" You can now play with the browser manually, navigate to as many pages, perform ...


5

This could be a timing issue(as most of the scenario you already discussed) when you're going to find it would not be present at that time on DOM, so you should try using WebDriverWait to wait until this element could be present as below:- WebDriverWait wait = new WebDriverWait(driver, 10); WebElement el = wait.until(ExpectedConditions....


5

There is no way to automate this in a way comparable to your current method. This is due to the lack of comparable automation APIs and basic action feedback. It is possible to manually test this by setting up virtual machines, this can still be done, even for Windows 95, etc. This will not work on public clouds or popular commercial hypervisors but can be ...


4

Here's an idea: Install Linux. I recommend using a virtual machine such as VirtualBox, which can run on a normal Windows box, to install a popular, well-maintained and lightweight system such as Lubuntu or Bodhi. Using a virtual machine means that you can run it as an app on your Windows computer; and this method will shield both the host and guest machines ...


4

There are solutions for IE6 and higher, but great scott - IE5 is out of reach, for sure for automated tests. I've found something like this: https://netrenderer.com/ but it doesn't even support https.


4

I have substantially simpler approach/solution than JAINAM's answer. When I needed similar "in the middle" manual actions, I added (in Python) break to Python debugger. Execution stopped, I did desired manual actions (you can even load another page) and then I resumed the execution. Easy-peazy.


4

I think you are missing out the definition of "Framework" https://smartbear.com/learn/automated-testing/test-automation-frameworks/ A framework is comprised of a combination of practices and tools that are designed to help QA professionals test more efficiently. These guidelines could include coding standards, test-data handling methods, ...


3

It mostly seems like your DOM is changing dynamically, so please use explicit wait using proper locator that uniquely identifies the element you want: The below thread shows the full discussion on 'Element not found': How to analyse 'Element not Found' exceptions when working with Selenium The summary is to : 1. Trust your code and doubt SUT (...


3

Your xpath locator is wrong , try the below xpath: /html/body/div/div/footer/md-toolbar/div/div[2]/img[2]/../../../../../../../../body[@class="layout-column md-dialog-is-showing"] The errors were , space after /html/body/div/div/footer/md- more than one space character after body[@class="layout-column You navigated back to parent only seven times, ../../...


3

Hi you could try converting the local text to Unicode values first, use the below website to do that: https://www.branah.com/unicode-converter So the unicode character for : הוסף תמונה או סרטון is \u05d4\u05d5\u05e1\u05e3 \u05ea\u05de\u05d5\u05e0\u05d4 \u05d0\u05d5 \u05e1\u05e8\u05d8\u05d5\u05df Now use that value in your xpath: a=driver.findElement(By....


3

Add an explicit wait after you click your menu and then once the drop-down element is present refer below steps: https://selenium.dev/docs/site/en/support_packages/working_with_select_elements/ Please refer to the above document: You can use the select class in ruby to achieve this: select_element = driver.find_element(id: 'couCode') select_object = ...


3

You are trying to access element instance that was created using the previous browser instance. The workflow is as follow, You imported the page object instance at the start of the spec using require A browser instant is created in the onPrepare Using that instance your page object model gets the element object But on next 'It' the browser restarts but the ...


2

Possibly - if u use a terminal through a browser window. See https://github.com/jupyter/terminado This lets you run a terminal in a browser. So now you might be able to get at items as web elements. But I don't know if the terminal is displayed as part of the DOM - quite possibly not. Whether it accepts commands like a <input> element remains to be ...


2

It should be something like this one (might need some adjustments if you use something other than IntelliJ as your IDE and : # Created by .ignore support plugin (hsz.mobi) ### Java template *.class # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.ear # virtual machine crash logs, see http://www.java.com/en/download/help/...


2

You can use JAINAM answer , or As you are using java , you could add a pop window that pauses your test till you finishes the manual part and resumes the code. import javax.swing.JOptionPane; //your code //Pop while doing, your manual stuff int choice = JOptionPane.showOptionDialog(null, "Ready to resume the scripts?", "Please confirm", ...


2

It seems the second page is opening in a new tab, please switch the tab before interacting with the page: driver.findElement(By.xpath("/html/body/div[4]/div[2]/div[2]/div[2]/div[2]/div[2]/div[2]/div/div[4]/div[1]/div/div/div[2]/div[1]/span[1]/strong/span/div/ul/li[1]/span/a")).click(); ArrayList<String> tabs = new ArrayList<String>(driver....


2

Reading your comments I see that app is based on Angular and this: This service appointment has no scheduling dependencies. Does that mean that: First you need to select service appointment (whatver that is) And then check for scheduling dependencies? If yes, then it looks like you need to: Click for something Wait until the element is shown (you can ...


2

You can override you private void instantiateChromeDriver() method in your child class (you have to change access modifier of the method in base class in order to do so) where you can instantiate the driver with the options you need in your child class. Here is a simple model of your architecture: Base class with its own initialization public class Base { ...


2

I think the first sentence on Wikipedia says it clearly enough: In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. [ https://en.wikipedia.org/wiki/Software_framework ] To say it in ...


2

Are there any courses/books online to learn automation framework design in Java? In my case, I started learning with online videos about Java (focus in selenium). In my case, it was more helpful (and to be honest more convenient to learn via online video tool) I started with the link from Angie Jones Courses. There you will find good online videos. Also ...


2

As a shorter way, Its a base structer or the foundation to write automation test scripts for different componets (web, mobile ... etc). A good framework will provide solutions for some of below limitations or the issues. Handling scripts and data separately. Creation of libraries. Extensibility issues. Maintenance issues. Reporting issues.


2

Fair warning: this is my opinion based on practice: if it does what you need and doesn't introduce too much of a maintenance burden, it's not bad practice. Your goal is to build scripts that a relatively easy to extend, relatively easy to debug, and relatively easy to maintain. If capybara works for you, then it's good.


1

I would like to suggest a different way to get to the element that I use a lot. It might be slower, because it does mutliple FindElement(s) calls, but it is so much more readable and understandable. var container = driver.FindElement(By.ClassName("items-container")); var spans = container.FindElements(By.TagName("span")) spans[1].Click(); You find the div ...


Only top voted, non community-wiki answers of a minimum length are eligible