Как нажать на иконку загрузки в браузере Chrome с помощью Python Selen - PullRequest
0 голосов
/ 21 октября 2019

Я хочу скачать файлы, нажав на значок загрузки в браузере Chrome . Я пробовал несколько способов, таких как Xpath и CSS, но это не сработало. Пожалуйста, дайте мне знать, если есть какое-либо решение по этому вопросу, используя Python 3.x и селен.

Ниже приведен код, который я пробовал,

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()

Заранее спасибо.

1 Ответ

1 голос
/ 21 октября 2019

Возможно, элемент еще не загружен, когда вы пытаетесь щелкнуть по нему, попробуйте дождаться его с помощью WebDriverWait, у меня нет хрома, поэтому вам придется проверить это самостоятельно:

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...