How to control Chrome Downloads page Using Selenium c#?

0 votes

I'm trying to manipulate "chrome://downloads/" URL using Selenium.

My objective is to

  • Start a download,
  • Make sure that download get start
  • Cancel the download

But the problem is that I´m not able to get the values of the downloads or cancel.

It shows an error:  that my id isn't correct. Does anyone know if there any restriction to this kind of page?

Below is my code:

using System;

using System.IO;

using System.Net;

using System.Net.Sockets;

using System.Text.RegularExpressions;

using System.Threading;

using OpenQA.Selenium.Chrome;

using OpenQA.Selenium.Firefox;

namespace SitesApplications

{

    class Program

    {

        static void Main(string[] args)

        {

           BrowseUrl.driver = new ChromeDriver();

            //ChromeOptions TESTE = new ChromeOptions();

            //TESTE.AddArgument("--disable-privacy");

            FileDownload teste = new FileDownload("http://centos.ufes.br/7/isos/x86_64/CentOS-7-x86_64-Everything-1708.iso", 60);


            teste.gotoDownloadList("chrome://downloads/", 60);


            //ChromeWebElement haha = new ChromeWebElement(BrowseUrl.DriverChrome, "pause-or-resume");


            ////haha.Clicks(20);


            //haha.Cliquei(20);


            teste.CancelaTeste(10);


        }


    }

Program Calls


using OpenQA.Selenium;

using OpenQA.Selenium.Support.PageObjects;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


namespace SitesApplications

{

    class FileDownload

    {

        /// <summary>

        /// Enta no link direto para o download.

        /// </summary>

        /// <param name="Url">Link de destino para o download.</param>

        /// <param name="time">Tempo maximo para abertura da pagina.</param>

        public FileDownload(string Url, int time)

        {

            BrowseUrl CentOs = new BrowseUrl(Url, time);

            PageFactory.InitElements(BrowseUrl.driver, this);

        }


        public void gotoDownloadList(string url, int timeout)

        {


            BrowseUrl downList = new BrowseUrl(url, timeout);

            PageFactory.InitElements(BrowseUrl.driver, this);


        }


        private bool barra_prog;


        public bool barraprog

        {

            get { return barra_prog; }

May 7, 2018 in Selenium by Martin
• 4,210 points
775 views

1 answer to this question.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
0 votes

In your case you must replace 'cancel' by 'Cancelar'.

Check this Question : Accessing Shadow DOM tree with Selenium

Read this article on Shadow DOM Elements here: http://www.seleniumeasy.com/selenium-tutorials/accessing-shadow-dom-elements-with-webdriver.To know how to handle the Chrome download page you must know how to handle Shadow DOM Elements. I tried a lot of different solutions before I finally managed to get the one below working:

 IJavaScriptExecutor jse2 = (IJavaScriptExecutor)Driver;

        jse2.ExecuteScript("return document.querySelector('downloads-manager').shadowRoot.querySelector('downloads-item').shadowRoot.getElementById('cancel').click()");

answered May 7, 2018 by Samarpit
• 5,130 points

Related Questions In Selenium

0 votes
1 answer

How to get a page name using Selenium Webdriver (C#)?

I believe the below thing works: driver.Title; READ MORE

answered Sep 14, 2018 in Selenium by Martin
• 4,210 points
69 views
0 votes
1 answer

How to scroll the Page up or down in Selenium WebDriver? (using java)

Its pretty simple. Check out the below ...READ MORE

answered Apr 5, 2018 in Selenium by nsv999
• 5,050 points
4,961 views
0 votes
1 answer

How to open a browser window in full screen using Selenium WebDriver with C#

Simply Use this: driver.Manage().Window.Maximize(); READ MORE

answered Jun 7, 2018 in Selenium by Samarpit
• 5,130 points
2,190 views
+1 vote
1 answer
0 votes
1 answer

Finding WebDriver element with Class Name in java

The better way to handle this element ...READ MORE

answered Apr 10, 2018 in Selenium by nsv999
• 5,050 points
131 views
0 votes
1 answer
0 votes
1 answer

Geo-location microphone camera pop up

To Allow or Block the notification, access using Selenium and you have to ...READ MORE

answered May 11, 2018 in Selenium by Samarpit
• 5,130 points
519 views
0 votes
1 answer

How to use such xpath to find web elements

It's much simpler to use: #MyDiv123 > div.super or ...READ MORE

answered Jun 14, 2018 in Selenium by Samarpit
• 5,130 points
119 views
0 votes
2 answers

How to set Page Load Timeout using C# using Selenium WebDriver

driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(15); READ MORE

answered Apr 16 in Selenium by Tim Muir
1,091 views
0 votes
1 answer

How to set Page Load Timeout using C# and Selenium Webdriver

Check this out C# WebDriver API now contains ...READ MORE

answered Aug 3, 2018 in Selenium by Samarpit
• 5,130 points
953 views

© 2018 Brain4ce Education Solutions Pvt. Ltd. All rights Reserved.
"PMP®","PMI®", "PMI-ACP®" and "PMBOK®" are registered marks of the Project Management Institute, Inc. MongoDB®, Mongo and the leaf logo are the registered trademarks of MongoDB, Inc.