Измените все «display: none» на «display: block» с помощью Selenium Python

#javascript #python #html #selenium

#javascript #python #HTML #селен

Вопрос:

У меня есть веб-сайт, где я хочу изменить все элементы на "display: none" to "display: block" . Я хочу автоматизировать действие с помощью Python Selenium. Я уже нашел методы для этого, но это работает, только если у вас есть имя класса и если есть только один элемент, который вы хотите изменить.

Комментарии:

1. вы могли бы просто открыть файлы своего веб-сайта в Visual Studio code и выполнить поиск display: none , а затем заменить его на display: block это будет намного проще

2. Вы сказали, что хотите сделать это с помощью python, пока в вашем вопросе есть тег javascript. означает ли это, что люди могут предлагать решения и на js?

3. @MahmoodKiaheyrati Решение, которое я нашел для одного элемента, использует JavaScript в файле python, поэтому я подумал, что это будет то же самое.

4. @vooxe было бы неплохо также включить это решение. и есть ли просто встроенные стили или есть какие-то стили css, которые вы хотите изменить?

5. Вы на самом деле используете selenium?

Ответ №1:

Это должно сработать, но это займет много времени. Лучше всего, если вы сможете сузить элементы с помощью более конкретного xpath:

 every_element = driver.find_elements_by_xpath("//*")

for element in every_element:
    display_prop = element.value_of_css_property('display')
    if display_prop == 'none':
        driver.execute_script("arguments[0].style.display = 'block';", element)