#python #css #selenium #sharepoint
#python #css — файл #селен #sharepoint
Вопрос:
Я пытаюсь автоматизировать следующий процесс
- Доступ к сайту Sharepoint
- Загрузка некоторых входных данных
- Запуск запроса, который извлекает некоторые данные
- Загрузите его в Excel через меню (Действия, Загрузка, Excel)
Я успешно выполнил шаги 1-3 и заставил его работать идеально, но я застрял на четвертом.
Я записал 3 нажатия в меню, необходимые для загрузки в Excel, получая следующие идентификаторы:
css=#m_sqlRsWebPart_RSWebPartToolbar_ctl00_RptControls_RSActionMenu_ctl01_t > .ms-core-menu-arrow
css=#m_sqlRsWebPart_RSWebPartToolbar_ctl00_RptControls_RSActionMenu_Export > .ms-core-menu-title
css=#mp1_1_3_Anchor > #m_sqlRsWebPart_RSWebPartToolbar_ctl00_RptControls_RSActionMenu_EXCELOPENXML
Затем я создал следующий код:
driver.find_element_by_css_selector(".ms-core-menu-arrow").click() # click on Actions menu
driver.find_element_by_css_selector('.ms-core-menu-title').click() # click Excel
driver.find_element_by_css_selector('#mp1_1_3_Anchor > #m_sqlRsWebPart_RSWebPartToolbar_ctl00_RptControls_RSActionMenu_EXCELOPENXML').click() # click Excel
Когда я запускаю его, он нажимает на меню действий (первый шаг), но затем он застревает со следующим сообщением:
«Не удается найти элемент: {«метод»:»селектор css»,»селектор»:».ms-core-menu-title»}
Я не понимаю, почему код может нажимать на первую кнопку «.ms-core-menu-Arrow», но не на вторую «.ms-core-menu-title»
Я попытался пропустить вторую строку кода и перейти непосредственно к третьей для загрузки в Excel, но это не удается таким же образом идентифицировать элемент css.
Любая помощь?
Спасибо!!
Комментарии:
1. Может быть, программа выполняется слишком быстро, и последний пункт меню еще не загружен?
Ответ №1:
Я не совсем понимаю, как это работает (я новичок в этом), но я снова попытался записать последовательность с помощью Selenium в Chrome, и вместо возврата кодов кнопок CSS он вернул «идентификаторы»
Я, наконец, нацелился на это с помощью следующего кода, и это сработало!!!
driver.find_element_by_css_selector(".ms-core-menu-arrow").click() # click on Actions menue
time.sleep(6)
driver.find_element_by_id('mp1_0_2_Anchor').click() # click Download
driver.find_element_by_id('mp1_1_3_Anchor').click() # click Excel
Мне нужно добавить 6 секунд после загрузки первого меню, чтобы можно было нажать следующие кнопки, так что в любом случае ваш ответ помог мне разобраться!
Большое спасибо!!