Создание виджетов Drupal с помощью автоматизации selenium

#selenium #selenium-webdriver #drupal

Вопрос:

Я хочу создать с помощью selenium webdriver виджет Drupal с учетом некоторых данных (тексты, изображения, …)

Мне удалось открыть бэк-офис веб-сайта, построенного на решении Drupal, но я застрял, пытаясь заставить кнопку «добавить виджет» работать :

У меня есть что-то вроде :

 # id of the button "Ajouter widget" (add widget)
id_add_widget = 'edit-field-content-add-more-add-modal-form-area-add-more'

widget_button = driver.find_element_by_id(id_add_widget)
widget_button.click()
 

соответствует следующему состоянию :
кнопка добавить виджет
но он не запускает выбор виджетов, которые вы получили бы, нажав на него :
виджет списка
(и теперь мне нужно выбрать из этого списка…)

Ответ №1:

Является ли этот идентификатор edit-field-content-add-more-add-modal-form-area-add-more уникальным в HTML DOM ?

Если да, то попробуйте выполнить следующие испытания кода :

Код 1 :

 widget_button = driver.find_element_by_id(id_add_widget)
widget_button.click()
 

Код 2:

 widget_button = driver.find_element_by_id(id_add_widget)
driver.execute_script("arguments[0].click();", button) 
 

Код 3:

Воспользуйся Explicit waits

 WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "edit-field-content-add-more-add-modal-form-area-add-more"))).click()
 

Импорт :

 from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
 

Если это ID не unique in HTML DOM так, вам придется искать другой локатор.