#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
так, вам придется искать другой локатор.