SlideShare a Scribd company logo
1 of 16
Download to read offline
Mark Collin
@Ardesco
http://ardesco.lazerycode.com/
Downloading files,
easy right?
Auto It
•

Different script for each browser

•

Script may break with browser upgrade

•

Windows only

•

Not KISS (Keep It Simple Stupid)
Browser set to automatically
download files

•

It’s KISS

•

Cross Platform
What did you just download?
Let’s look a bit
harder…
What did you just download?
We need to check the file, but
we have some problems…
•

Has the file finished downloading?

•

What is the downloaded file called?

•

The file isn’t there… What happened?

•

How do we check it’s the right file?

•

Is the file from this test or the last test?
Looks like we didn’t keep
it simple after all stupid!
What we need to do
•

We need to make sure that we downloaded the
file or provided useful feedback if we couldn’t

•

We need to make sure that the file we
downloaded was the correct file
If it’s not in the DOM,
you’re doing it wrong!
Collin’s Law
Downloading Files
•

Don’t click the download link with Selenium!

•

Use a library that is designed to download
remote files (Selenium isn’t)
Checking downloaded files
•

KISS (Keep It Simple Stupid), don’t try to write
complicated comparison logic!

•

Use the thing that everybody uses, a hash!

•

Save the files if the test fails! We are going to
want to look at them.
You don’t have to use
Java!
Questions?
Mark Collin
@Ardesco
http://ardesco.lazerycode.com/

More Related Content

Viewers also liked

Vistage Group Overview Brochure
Vistage Group Overview BrochureVistage Group Overview Brochure
Vistage Group Overview BrochureJamie Overbey
 
Great Sand Dunes Geo 111
Great Sand Dunes Geo 111Great Sand Dunes Geo 111
Great Sand Dunes Geo 111bjnarum
 
クリエイターのための「はじめての確定申告」 先生:山内 真理
クリエイターのための「はじめての確定申告」 先生:山内 真理クリエイターのための「はじめての確定申告」 先生:山内 真理
クリエイターのための「はじめての確定申告」 先生:山内 真理schoowebcampus
 
Y1T2- IM Math ACE
Y1T2- IM Math ACEY1T2- IM Math ACE
Y1T2- IM Math ACEKeefe Ng
 
起業プランを生放送でブラッシュアップ!crewwリアリティ・ショー「スタートアップ」を始めよう!3限目:コンセプトワーク
起業プランを生放送でブラッシュアップ!crewwリアリティ・ショー「スタートアップ」を始めよう!3限目:コンセプトワーク起業プランを生放送でブラッシュアップ!crewwリアリティ・ショー「スタートアップ」を始めよう!3限目:コンセプトワーク
起業プランを生放送でブラッシュアップ!crewwリアリティ・ショー「スタートアップ」を始めよう!3限目:コンセプトワークschoowebcampus
 
Silozuri si instalatii de depozitare (Rumanian)
Silozuri si instalatii de depozitare (Rumanian)Silozuri si instalatii de depozitare (Rumanian)
Silozuri si instalatii de depozitare (Rumanian)Silos Cordoba
 
การไหว้
การไหว้การไหว้
การไหว้kingpai
 
About us path focus technologies
About us path focus technologiesAbout us path focus technologies
About us path focus technologiespathfocus
 
Sarah hoyman non profit pecha kucha
Sarah hoyman non profit pecha kuchaSarah hoyman non profit pecha kucha
Sarah hoyman non profit pecha kuchasaj5042
 

Viewers also liked (11)

Vistage Group Overview Brochure
Vistage Group Overview BrochureVistage Group Overview Brochure
Vistage Group Overview Brochure
 
Great Sand Dunes Geo 111
Great Sand Dunes Geo 111Great Sand Dunes Geo 111
Great Sand Dunes Geo 111
 
クリエイターのための「はじめての確定申告」 先生:山内 真理
クリエイターのための「はじめての確定申告」 先生:山内 真理クリエイターのための「はじめての確定申告」 先生:山内 真理
クリエイターのための「はじめての確定申告」 先生:山内 真理
 
Y1T2- IM Math ACE
Y1T2- IM Math ACEY1T2- IM Math ACE
Y1T2- IM Math ACE
 
Afg.formadora
Afg.formadoraAfg.formadora
Afg.formadora
 
起業プランを生放送でブラッシュアップ!crewwリアリティ・ショー「スタートアップ」を始めよう!3限目:コンセプトワーク
起業プランを生放送でブラッシュアップ!crewwリアリティ・ショー「スタートアップ」を始めよう!3限目:コンセプトワーク起業プランを生放送でブラッシュアップ!crewwリアリティ・ショー「スタートアップ」を始めよう!3限目:コンセプトワーク
起業プランを生放送でブラッシュアップ!crewwリアリティ・ショー「スタートアップ」を始めよう!3限目:コンセプトワーク
 
Silozuri si instalatii de depozitare (Rumanian)
Silozuri si instalatii de depozitare (Rumanian)Silozuri si instalatii de depozitare (Rumanian)
Silozuri si instalatii de depozitare (Rumanian)
 
การไหว้
การไหว้การไหว้
การไหว้
 
Arijit
ArijitArijit
Arijit
 
About us path focus technologies
About us path focus technologiesAbout us path focus technologies
About us path focus technologies
 
Sarah hoyman non profit pecha kucha
Sarah hoyman non profit pecha kuchaSarah hoyman non profit pecha kucha
Sarah hoyman non profit pecha kucha
 

Recently uploaded

Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 

Recently uploaded (20)

Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 

What did you just download?