Showing posts with label Automation. Show all posts
Showing posts with label Automation. Show all posts

Thursday, April 10, 2025

Selenium Java - Warning/Errors and its solutions


Here's a list of standard warnings/errors in Selenium with Java and their respective solutions to help you debug faster and develop cleaner automation scripts.

✅ 1. org.openqa.selenium.NoSuchElementException

Cause: Trying to locate an element that does not exist on the page.

Solutions:

  • Ensure the element is present in the DOM and visible.

  • Add waits:

    WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
    WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("elementId")));
    
  • Check locator correctness (id, xpath, cssSelector, etc.).


✅ 2. ElementNotInteractableException

Cause: Element is present but cannot be interacted with (e.g., it's hidden or disabled).

Solutions:

  • Use WebDriverWait to ensure it is clickable:

    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("elementId")));
    
  • Scroll into view using JavaScript:

    ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
    

✅ 3. TimeoutException

Cause: Wait timed out before condition was met.

Solutions:

  • Increase wait time or optimize locator.

  • Use appropriate expected condition (e.g., presenceOfElementLocated vs visibilityOfElementLocated).


✅ 4. StaleElementReferenceException

Cause: WebElement is no longer attached to the DOM.

Solutions:

  • Re-locate the element after page reload or DOM change:

    element = driver.findElement(By.id("elementId"));
    
  • Use a try-catch block to retry locating the element.


✅ 5. SessionNotCreatedException

Cause: Browser version mismatch with WebDriver.

Solutions:

  • Make sure ChromeDriver/GeckoDriver matches your browser version.

  • Use WebDriverManager (for Maven):

    WebDriverManager.chromedriver().setup();
    

✅ 6. WebDriverException: unknown error: DevToolsActivePort file doesn't exist

Cause: Usually in headless mode with Chrome on Linux.

Solutions:

  • Add Chrome options:

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--no-sandbox");
    options.addArguments("--disable-dev-shm-usage");
    options.addArguments("--headless");
    

✅ 7. Deprecation Warnings

Cause: Some older APIs (like Thread.sleep, implicitlyWait without Duration, etc.) are deprecated.

Solutions:

  • Replace deprecated code:

    driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
    

✅ 8. java.lang.NullPointerException

Cause: WebElement or WebDriver not initialized.

Solutions:

  • Check initialization:

    WebDriver driver = new ChromeDriver(); // Not null
    
  • Ensure correct scope in frameworks like TestNG, JUnit, etc.


✅ 9. org.openqa.selenium.ElementClickInterceptedException

Cause: Another element overlays the clickable element (like a modal or popup).

Solutions:

  • Wait for overlay to disappear.

  • Use JS click:

    ((JavascriptExecutor) driver).executeScript("arguments[0].click();", element);
    

✅ 10. IllegalStateException: The driver executable does not exist

Cause: Path to WebDriver not set correctly.

Solutions:

  • Set system property or use WebDriverManager:

    System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
    

Thursday, October 12, 2023

Windows Task Scheduler for software testing

Using Windows Task Scheduler for software testing can be useful for automating and scheduling test scripts, tasks, or applications to run at specific times or under certain conditions. This can help you ensure that your software behaves as expected under different scenarios. Here's how you can set up Windows Task Scheduler for software testing:


1. Accessing Task Scheduler:

   - Open the Windows Start menu and search for "Task Scheduler" or "Schedule tasks."

   - Click on "Task Scheduler" to open the program.


2. Creating a New Task:

   - In the Task Scheduler window, navigate to the "Action" menu and select "Create Basic Task" or "Create Task" depending on your needs. Creating a basic task provides a wizard that guides you through the process while creating a task gives you more advanced options.


3. Task Description:

   - Give your task a name and description so that you can easily identify its purpose.


4. Trigger:

   - You can set up triggers that determine when the task will run. For testing purposes, you might want to use triggers like "Daily," "Weekly," "Monthly," or "One time" depending on your testing schedule.


5. Action:

   - Select "Start a program" as the action type. This is where you specify the software or script you want to run for testing. Browse for the executable or script file.


6. **Start In (Optional):

   - If your script or software relies on a specific working directory, you can specify it in the "Start in" field.


7. Conditions (Optional):

   - In the "Conditions" tab, you can specify conditions like running the task only when the computer is idle, or waking the computer to run the task.


8. Settings (Optional):

   - The "Settings" tab allows you to further configure your task, such as setting up repeat intervals, stopping the task if it runs for a long time, or configuring additional behavior.


9. Finish:

   - Review your settings in the summary window and click "Finish" to create the task.


10. Testing and Running:

    - To test the task, right-click on it in the Task Scheduler library, and select "Run." This will execute your software or script.


11. Monitoring and Logging:

    - You can view the status of your tasks in the Task Scheduler. It will show if they completed successfully or encountered errors. You can also set up task logging to keep track of the test results.


12. Modifying or Deleting Tasks:

    - If you need to modify or delete a task, you can do so from the Task Scheduler library.


By using Windows Task Scheduler, you can automate repetitive testing tasks like API Automation using newman command, and Cypress Test Execution using npm commands.. ensuring that your software or scripts are tested at scheduled intervals or under specific conditions. This can help streamline the testing process and improve the reliability of your software.

Sunday, May 3, 2020

Testcafe Tool for Beginner

It is Node-JS based web automation testing supported from command as well as IDE desktop based which is available in paid/free version.

You have prior knowledge about NODEJS and Basic of Javascript.

NodeJS should be installed in your machine to use the TestCafe tool.

For more about introduction read in below URLs:

https://devexpress.github.io/testcafe/documentation/getting-started/

https://testcafe.devexpress.com/Documentation/Getting_Started/Getting_Started_Guide/



Installing TestCafe:

npm install -g testcafe


Running the Test

You can run the test from a command shell by calling a single command where you specify the target browser and file path.
testcafe chrome test1.js



  

Friday, February 14, 2020

Python with Selenium Webdriver

## Python with Selenium Helper file :-
-----------------------------------------

##Check version/ Is already installed? via CMD
-----------------------------------------------
python --version
pip --version

CTRL + '/' => Comment or Uncomment any line 
CTRL + ALT + SHIFT => Formate Code automatically


##Install Selenium in Python via CMD
---------------------------------------
pip install -U selenium


##Upgrade PIP version via CMD
------------------------------------
python -m pip install --upgrade pip


##Learn Selenium Python : Step by Step
------------------------------------------------------
Step 1 : download python - https://www.python.org/downloads/
Step 2 : Install and check python and pip is installed successfully
              python --version
              pip --version
Step 3 : install selenium libraries
              pip install -U selenium
Step 4 : Download PyCharm - community edition
      https://www.jetbrains.com/pycharm/dow...
Step 5 : Create new project in PyCharm
Step 6 : Adding selenium scripts to the project
   note: those who face problem on click btnK replace it with "q".
Step 7 : Run from IDE
         Run from Command Line


For more deatils about sample project kindly refer a below URL:

https://github.com/autom99/PythonSampleProject/tree/master/PythonWithSelenium


Saturday, February 8, 2020

Python Web Scraping Using BeautifulSoup

Web scraping is the process of constructing an agent which can extract, parse, download and organize useful information from the web automatically. It is also called as web data mining or web harvesting.
In a simple word, Web scraping is used to collect large information from websites. 
Applications of web scraping:
  • Price Comparison: Services such as ParseHub use web scraping to collect data from online shopping websites including using it to compare the prices of products.
  • Email address gathering: Many companies that use email as a medium for marketing, use web scraping to collect email ID and then send bulk emails.
  • Social Media Scraping: Web scraping is used to collect data from Social Media websites such as Twitter to find out what’s trending.
  • Research and Development: Web scraping is used to collect a large set of data (Statistics, General Information, Temperature, etc.) from websites, which are analyzed and used to carry out Surveys or for R&D.
  • Job listings: Details regarding job openings, interviews are collected from different websites and then listed in one place so that it is easily accessible to the user.



Implementing Web Scraping in Python with BeautifulSoup


There are mainly two ways to extract data from a website:
  • Use the API of the website (if it exists). For example, Facebook has the Facebook Graph API which allows retrieval of data posted on Facebook.
  • Access the HTML of the webpage and extract useful information/data from it. This technique is called web scraping or web harvesting or web data extraction.
This article discusses the steps involved in web scraping using the implementation of Web Scraping in Python with Beautiful Soup
Steps involved in web scraping:


  1. Send an HTTP request to the URL of the webpage you want to access. The server responds to the request by returning the HTML content of the webpage. For this task, we will use a third-party HTTP library for python-requests.
  2. Once we have accessed the HTML content, we are left with the task of parsing the data. Since most of the HTML data is nested, we cannot extract data simply through string processing. One needs a parser which can create a nested/tree structure of the HTML data.
    There are many HTML parser libraries available but the most advanced one is html5lib.
  3. Now, all we need to do is navigating and searching the parse tree that we created, i.e. tree traversal. For this task, we will be using another third-party python library, Beautiful Soup. It is a Python library for pulling data out of HTML and XML files.
In below example, I am using PycharmIDE:

source code: TestWebScrap.py

-----------------------------------------------------------------
import requests
from bs4 import BeautifulSoup

page = requests.get("https://autom99.blogspot.com/")
soup = BeautifulSoup(page.content,'html.parser')
print(soup.prettify())

posts = soup.find_all(class_ ='posts')
print(posts)

postHierarchy = soup.find_all(class_ = 'hierarchy')
print(postHierarchy)

print(soup.find_all(id='ArchiveList'))
---------------------------------------------------------------------

Also, we can export the results into EXCEL as followed by the below code:

import pandas as pd
................-----------------

all = pd.DataFrame({
    'Posts': posts,
    'PostHierarchy': postHierarchy,
})
print(all)
------------------------


For more details refer to a URL my Github:







Saturday, January 18, 2020

Chrome is being controlled by automated test software disable python 100% working

Below code is tested on Pycharm Community IDE with Python 3.8

# chrome is being controlled by automated test software disable pythonimport time
from selenium import webdriver

# Some additional functionality with Chrome browser options
option = webdriver.ChromeOptions()
option.add_experimental_option("excludeSwitches", ["enable-automation"])
option.add_experimental_option('useAutomationExtension', False)

try:
    # Make sure add option in arguments,so that working disable chrome automation notification
driver = webdriver.Chrome("<specify directory path for..../chromedriver.exe>",options=option) time.sleep(1)
    driver.maximize_window()
    time.sleep(1)
    driver.minimize_window()
    time.sleep(0.75)
    driver.maximize_window()
    time.sleep(0.75)
    driver.minimize_window()
    time.sleep(0.5)
    driver.maximize_window()
    time.sleep(0.5)
    driver.minimize_window()
    time.sleep(0.25)
    driver.maximize_window()
    time.sleep(0.25)
    driver.minimize_window()
    time.sleep(0.15)
    driver.maximize_window()
    time.sleep(0.15)
    driver.minimize_window()
    time.sleep(0.05)
    driver.maximize_window()
    time.sleep(2)
except BaseException:
    print(BaseException.with_traceback())
finally:
    driver.close()

Thursday, January 16, 2020

Python Error solution 100% working

-------------------------------
Error description:
------------------------------
No module found error
any package installation failed  after installing by cmd

Go to PyCharm IDE -> theb
File -> Settings -> Projects -> Select '<Python installation path>' -> then 'Apply'.

then Run again test.

----------------------------------------------

Error messages in Python can often be confusing. Here is a list of common error messages you may find, along with a plain English explanation. These error messages are the result of runtime errors. They will immediately crash your Here are the error messages explained (your error messages may be slightly different but mean the same thing):

SyntaxError: invalid syntax
ImportError: No module named raandom
SyntaxError: EOL while scanning string literal
AttributeError: 'str' object has no attribute 'lowerr'
IndentationError: expected an indented block
IndentationError: unexpected indent
IndentationError: unindent does not match any outer indentation level
TypeError: bad operand type for abs(): 'str'
TypeError: abs() takes exactly one argument (2 given)
IndexError: list index out of range
KeyError: 'spam'
SyntaxError: invalid syntax
This is the most generic error message the Python interpreter will give you. It means that Python was expecting something that isn't there, or there is something there that it didn't expect. Maybe you forgot to include or inserted an extra character. Here are some examples:

if guess = 5:
In the above case, the programmer used = (the assignment operator) instead of == (the equals comparator operator). Python never expects assignment statements where there should be a condition.

def foo(:
In the above case, the programmer forgot to match the ending ) closing parenthesis.

def foo()
In the above case, the programmer forgot to put the colon at the end of the def statement. This can also happen with for, while, if, elif, and else statements.

ImportError: No module named raandom
This error shows up when you try to import a module that does not exist. Most likely, you have a typo in the module name. For example, you may have typed raandom instead of random.

SyntaxError: EOL while scanning string literal
print('Hello world!)
print("Hello world!')
This error happens when you do not have two quote marks for a string, or you use different quote marks for the same string. Look at these two examples:

AttributeError: 'str' object has no attribute 'lowerr'
'Hello'.lowerr()
'Hello'.append('x')
This error appears when you call a method or access an attribute that does not exist. This is most likely because 1) you have a typo in the method or attribute name, or 2) you are calling the method or attribute on a value that is the wrong data type. For example, strings have a method named lower(), but not lowerr() (that is a typo). And the append() method is a list method, so calling it on a string value will cause this error.

IndentationError: expected an indented block
def foo():
print('Hello world!')
This error happens if you fail to indent your code for a block. In the above example the print() call is at the same level of indentation as the def statement, when it should have a larger indentation.

IndentationError: unexpected indent
def foo():
    print('Hello world!')
     print('Goodbye')
An unexpected indent error happens when you add an indentation for no reason. You should only add indentation after a def, if, else, elif, while, or for statment (or any statement that ends with a colon.)

IndentationError: unindent does not match any outer indentation level
def foo():
    print('Hello world!')
   print('Goodbye')
This indentation error appears when you are decreasing the indentation, but not decreasing it to the same level as the previous indentation. The print('Goodbye') call should either be at the same indentation as the other print() call (and be inside the if block) or at the same indentation as the if statement (and be outside of the if block).

TypeError: bad operand type for abs(): 'str'
abs('Hello')
This error occurs when the value of an argument you pass to a function or method is of the wrong data type. In the above example, the abs() function takes an integer or floating point number. Passing a string for the argument results in an error.

TypeError: abs() takes exactly one argument (2 given)
abs(42, 50)
This error appears when you pass the wrong number of arguments to a function or method, either too many or too few. The abs() function takes exactly one (and only one) argument. In our example we pass two arguments, which results in this error.

IndexError: list index out of range
myList = ['spam', 'fizz', 'eggs']
print(myList[3])
The IndexError happens when the index you use is larger than or equal to the number of actual items in the list. In our above example, the myList list only has 3 items in it, so the only valid indexes to use are 0, 1, and 2. The index 3 (or any other index larger than 2) is larger than any of these indexes, so the code results in an IndexError.

KeyError: 'spam'
myDict = {'fizz':42, 'eggs':100}
myDict['spam']
The KeyError happens when you try to access a key in a dictionary object that does not exist. Either the key was never added to the dictionary, was deleted previously with the del operator, or the key you are using has a typo in it.


------------------------------------------------------------
Some Useful URL for error solving in Python
--------------------------------------------------------------

http://inventwithpython.com/appendixd.html

https://nostarch.com/automatestuffresources

https://nostarch.com/automatestuff2

https://pyautogui.readthedocs.io/en/latest/install.html



Python with Selenium Helper file

## Python with Selenium Helper file :-
-----------------------------------------

##Check version/ Is already installed? via CMD
-----------------------------------------------
python --version
pip --version

CTRL + '/' => Comment or Uncomment any line
CTRL + ALT + SHIFT => Formate Code automatically


##Install Selenium in Python via CMD
---------------------------------------
pip install -U selenium


##Upgrade PIP version via CMD
------------------------------------
python -m pip install --upgrade pip


##Learn Selenium Python in ONE VIDEO | Step by Step
------------------------------------------------------
Step 1 : download python - https://www.python.org/downloads/
Step 2 : Install and check python and pip is installed successfully
              python --version
              pip --version
Step 3 : install selenium libraries
              pip install -U selenium
Step 4 : Download PyCharm - community edition
      https://www.jetbrains.com/pycharm/dow...
Step 5 : Create new project in PyCharm
Step 6 : Adding selenium scripts to the project
note: those who face problem on click btnK replace it with "q".
Step 7 : Run from IDE
         Run from Command Line

Maven installation guide for beginner

## Maven installation guide :-
--------------------------------

Step -1
--------
Download Binary files for MAVEN from below url:

https://maven.apache.org/download.cgi

Step -2
--------
Go to Eclispe -> Help -> Install New Software -> Click on 'Add' button then enter:

Name: M2Eclipse
URL: http://download.eclipse.org/technology/m2e/releases/1.3

Then,Waiting for finishing download and installation of MAVEN into your Eclispe.


Step -3
--------
Checked on 'Maven Integration for Eclispe' then Click on 'Next'.
Then,Waiting for finishing setup automatically by Eclispe.

Solution 100% for error while Maven installation in Eclipse

---------------------------------------------------------------------
### ERROR DESCRIPTION :-
---------------------------------------------------------------------

Cannot complete the install because one or more required items could not be found.

Software being installed: m2e - Maven Integration for Eclipse (includes Incubating components) 1.14.0.20191209-1925 (org.eclipse.m2e.feature.feature.group 1.14.0.20191209-1925)

Missing requirement:
Maven Integration for Eclipse 1.13.0.20190716-1624 (org.eclipse.m2e.core 1.13.0.20190716-1624) requires 'bundle org.eclipse.osgi 3.10.0' but it could not be found

Missing requirement:
Maven Integration for Eclipse 1.14.0.20191209-1925 (org.eclipse.m2e.core 1.14.0.20191209-1925) requires 'bundle org.eclipse.osgi 3.10.0' but it could not be found

Cannot satisfy dependency:
    From: m2e Marketplace 1.14.0.20191209-1925 (org.eclipse.m2e.discovery 1.14.0.20191209-1925)
    To: bundle org.eclipse.m2e.core [1.13.0,1.14.1)

Cannot satisfy dependency:
    From: m2e - Maven Integration for Eclipse (includes Incubating components) 1.14.0.20191209-1925 (org.eclipse.m2e.feature.feature.group 1.14.0.20191209-1925)
    To: org.eclipse.m2e.discovery [1.14.0.20191209-1925]

-----------------------------------------------------------
SOLUTION:
--------------------------------------------------------------

ref url: https://stackoverflow.com/questions/21477775/error-installing-maven-integration-on-eclipse

Step-1
-------
Go to Eclispe -> Help -> Install New Software -> Click on 'Add' button then enter:

Step-2
-------
Name: M2Eclipse
URL: http://download.eclipse.org/technology/m2e/releases/1.3

just edit url with http://download.eclipse.org/technology/m2e/releases/1.3

-----------------------------------------------------------------

Friday, November 1, 2019

AutoIT useful information

Some features:
  • Very easy to create/manage/publish AutoIt projects (compile)
  • Integrated GUI Editor (ISN Form Studio 2)
  • Integrated file & project manager
  • Extendable thanks to plugins and open source!
  • Available in several languages
  • trophies
  • AutoIt 3 Syntax Highlighting / Autocomplete / IntelliSense
  • macros
  • Change Manager for your AutoIt project
  • Detailed overview of your project (how long have you been working on it, total size, etc.)
  • Integrated to-do list for your project
  • Optimized for high-resolution display (High DPI)
  • And much, much more!
ISN AutoIt Studio is free and 100% written (except for some DLL's) in AutoIt!
The latest version of ISN AutoIt Studio can be found under `Downloads'!

For AutoIT script making download ISN Studio followed by below URL

Guides/Tutorials

  • Tutorials - There are many tutorials available for AutoIt. This page is an overview of a few known tutorials.
  • Best coding practices - a detailed explanation of what are to be considered the best coding practices within AutoIt. These recommendations are based on accepted coding practices common to a number of other programming languages. You do not need to follow them, but it is recommended that you do.
  • Snippets - generally single functions or small pieces of code that can be incorporated into a script to add extra functionality.

Videos

Books

Syntax Highlighter

Other Awesome Lists


Checkout below URL for more useful information

https://github.com/J2TEAM/awesome-AutoIt#browsers

Monday, October 14, 2019

Visual testing using AI technology -Applitools for a Beginner

Intelligent Functional and Visual Testing Through Visual AI


Release perfect apps much faster at a reduced cost using incredibly accurate Visual AI

For more details about tool kindly follow below URL


At First,you have a registered into Applitools and it's free edition for a few days with some features.
After registered into Applitools,API key is generated which is used in all projects. If you forgot API key you can check on  'My API' option after login into account.


Above illustrated my testing by Applitools for a learning purpose and you can make professional by modifying some structure your own skills.

Screenshot -1 for Not exactly matching with Baseline visually selection pink marker as illustrated in below screenshot.

For more about Baseline refer below URL:




Screenshot -2 for Not exactly matching with Baseline visually selection pink marker as illustrated in below screenshot.




Some snippet code for above screenshots kindly refer below github URL:


Thank you very much for reading this post and take a some time for Automation testing.

Friday, October 4, 2019

XPath and CSS finder Chrome Extension Tool: Eskry

Eskry

Eskry is a free browser add-on/extension that helps automation testers and developers generating locators for HTML elements. 

From Chrome Web store find this tool and add to Chrome as plugin


For more details open above URL and type "ESKRY" in search box as followed by image:


After successfully adding this plugin,check for icon as illustrated in below image.


Then for testing purpose open a below URL in browser


After open url in chrome browser press F12 or Ctrl + Shift + I as Inspect element then look for a "Eskry " tab as illustrated in below image



Checkout below image for click on Title of the website and title of Register form 


Click on TEST button then it will be highlighted on screen as illustrated below


And then you can use for Automation Script for locator any specific elements in a browser.

Thank you very much for a reading this blog.
 


Thursday, September 26, 2019

AutoIT with Web Driver

Chrome support for AutoIT is here!  :D

This UDF includes a Chrome Extension (http://developer.chrome.com/extensions/getstarted.html) and Native Messaging Host (http://developer.chrome.com/extensions/messaging.html#native-messaging-host) that integrate with a new Chrome UDF (Chrome.au3) to provide automation support for the Chrome browser.

Several steps are required to install the Chrome Extension and Native Messaging Host prior to using the UDF.  

Please read the INSTALLATION section below.

REQUIREMENTS:
  • Windows XP 32-bit, Windows 7 32-bit or Windows 7 64-bit
  • AutoIt3 3.2 or higher
  • Chrome v29 or later (earlier versions are untested)
  • AutoIT for Google Chrome (Chrome extension - see below)
  • AutoIT Chrome Native Messaging Host (see below)
INSTALLATION:

STEP 1: Install the AutoIT extension into Chrome.
Open the following link and download the file named AutoIT for Google Chrome.crx:


Note - you may be prompted to login with a Google account as this file is hosted on Google Drive.
In your Chrome browser click on the Chrome menu, then select Tools -> Extensions. 

Drag the AutoIT for Google Chrome.crx file that you downloaded above, from Windows Explorer, into this page in Chrome.  

You should now see AutoIT for Google Chrome listed in the Extensions page in Chrome.  Ensure that the Enabled checkbox next to AutoIT for Google Chrome is checked.  

Also make sure the Allow access to file URLs box is checked (very important to make EXAMPLE 2 work below)!!

STEP 2: Install the AutoIT Chrome Native Messaging Host.
Open the following link and download the file named autoit_chrome_native_messaging_host_install.exe:


Note - you may be prompted to login with a Google account as this file is hosted on Google Drive.

Run this file (autoit_chrome_native_messaging_host_install.exe).  An installation window will display.  Click the Install button.  

The window will display "Completed" and you can click the Close button.

STEP 3: Install the Chrome UDF into AutoIT.
Scroll to the DOWNLOAD section below, and save the Chrome.au3 file into your AutoIT Include folder (C:Program FilesAutoIt3Include).

Please close your Chrome browser once you've completed these steps.


EXAMPLE #1:

This following example starts up Chrome and navigates to the URL 


It then automatically completes the HTML form in this page (a series of text, radio, and checkbox input elements and select elements) and clicks the Send this survey button.  

The script waits for the next page to load and retrieves the various elements from the page to the AutoIT console.


EXAMPLE #2:

The following is an example of the automation of an offline HTML page (file URL).  First, download the file named chrome_udf_example_2.html to your 

C: folder:

Then run the following AutoIT script:

Note that you must have checked the Allow access to file URLs box in the Chrome extension to make this work!


Download URLs:

https://github.com/autom99/AutoIT-with-WebDriver