Я пытаюсь эмулировать загрузку файла с веб-сайта с помощью Selenium Python при нажатии кнопки, определенной с помощью ng-click.
Файл HTML содержит следующее:
<div class="col-lg-6 btn-group">
<br/>
<br/>
<input type="button" ng-click="exportToExcel('#exportable')" class="btn-text btn-link export-main" value="Export" />
</div>
Код, который я ставлю после проверки разных опций, ничего не делает.
I
Когда я использую Selenium IDE, единственный записанный шаг - это "нажать" на "css =btn-text "и это работает, но с драйвером chrome и Selenium в Python ничего не загружается.
У меня есть этот код, чтобы убедиться, что Chrome Driver загружает файл.(Я проверял на других сайтах, и это работает)
options = webdriver.ChromeOptions()
prefs = {'download.default_directory' : self.download_location,
'download.prompt_for_download': False,
'download.directory_upgrade': True,
'safebrowsing.enabled': False,
'safebrowsing.disable_download_protection': False}
options.add_argument('--headless')
options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=options,
service_args=['--verbose', '--log-path=/tmp /chromedriver.log'])
Вот код, который я использую, чтобы нажать на кнопку, чтобы загрузить файл:
export_button = WebDriverWait(self.webdriver,10).until(ec.visibility_of_element_located((By.CLASS_NAME, "export-main")))
ActionChains(self.webdriver)\
.click(export_button)\
.move_to_element(export_button)\
.perform()
Я ожидаюзагрузить файл Excel из указанной папки в Chrome Driver, но кажется, что Selenium и Angular не очень хорошо играют вместе.
Есть ли другой способ вызова функции "ExportToExcel" с использованием Javascript?