Vishal
Vishal

Reputation: 119

How to click on download icon on chrome browser using python selenium

I want to download files by clicking on Download icon on Chrome browser. I tried several ways like Xpath and CSS but it doesn't worked. Please let me know if there is any solution on this using Python 3.x and selenium.

Below is code that I have tried,

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time

class TEAutomation:

    def automateTask(self):
        chromeOptions = Options()
        chromeOptions.add_experimental_option("prefs",{"download.default_directory": "/home/vishal/Documents/PythonProgram/"})

        baseUrl = "https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&DocId=Customer+Drawing%7F160743%7FM2%7Fpdf%7FEnglish%7FENG_CD_160743_M2.pdf%7F160743-1"
        driver = webdriver.Chrome(executable_path="/home/vishal/PycharmProjects/VSProgramming/drivers/chromedriver",chrome_options=chromeOptions)
        driver.maximize_window()
        driver.get(baseUrl)
        driver.implicitly_wait(10)

        driver.find_element(By.XPATH,'//*[@id="download"]').click()
        #driver.find_element(By.CSS_SELECTOR, '#download').click()

        time.sleep(5)
        driver.quit()

molexAuto = TEAutomation()
molexAuto.automateTask()

Thank you in advance.

Upvotes: 1

Views: 1480

Answers (1)

Dalvenjia
Dalvenjia

Reputation: 2033

Maybe the element is still not loaded when you try to click it, try waiting for it with WebDriverWait, I don't have chrome so you will have to test this yourself:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

class TEAutomation:

    def automateTask(self):
        chromeOptions = Options()
        prefs = {
            "download.default_directory": "/home/vishal/Documents/PythonProgram/",
            "plugins.always_open_pdf_externally": True
        }
        chromeOptions.add_experimental_option("prefs", prefs)

        baseUrl = "https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&DocId=Customer+Drawing%7F160743%7FM2%7Fpdf%7FEnglish%7FENG_CD_160743_M2.pdf%7F160743-1"
        driver = webdriver.Chrome(executable_path="/home/vishal/PycharmProjects/VSProgramming/drivers/chromedriver",chrome_options=chromeOptions)
        driver.implicitly_wait(10)
        driver.maximize_window()
        driver.get(baseUrl)

        time.sleep(5)
        driver.quit()

molexAuto = TEAutomation()
molexAuto.automateTask()

Upvotes: 2

Related Questions