Python selenium, как я могу удалить элемент?

Я пробовал последний час, чтобы удалить элемент без каких-либо успехов. И элемент может быть достигнут только через имя класса. Я пробовал:

js = "var aa=document.getElementsByClassName('classname')[0];aa.parentNode.removeChild(aa)" driver.execute_script(js) 

Я получаю ошибку, что parentNode не определен.

Итак, что лучший способ удалить элемент с помощью Selenium?

2 Solutions collect form web for “Python selenium, как я могу удалить элемент?”

getElementByClassName не является методом document . Вы захотите использовать

 getElementsByClassName('classname')[0]... 

но только если вы уверены, что он единственный, у кого есть этот класс.

Я не знаю метода Selenium, который специально разработан для удаления элементов. Однако вы можете сделать это с помощью:

 element = driver.find_element_by_class_name('classname') driver.execute_script(""" var element = arguments[0]; element.parentNode.removeChild(element); """, element) 

find_element_by_class_name вызовет исключение, если элемент не существует. Поэтому вам не нужно проверять, настроен ли element на разумное значение. Если метод возвращается, он устанавливается. Затем вы передаете элемент обратно в execute_script . Аргументы, переданные execute_script в Python, отображаются в JavaScript как объект arguments . (Это то же самое, что и объект arguments который вы обычно получаете с любой функцией JavaScript. За кулисами Selenium обертывает код JavaScript в анонимной функции.)

Или вы можете использовать решение, основанное на JavaScript, чтобы найти элемент:

 driver.execute_script(""" var element = document.querySelector(".classname"); if (element) element.parentNode.removeChild(element); """) 

Это решение намного лучше, если вы используете удаленный сервер для запуска теста (например, Sauce Labs или BrowserStack). Существует немалая стоимость связи между клиентом Selenium и сервером.

  • Загрузите файл по определенному пути, используя Selenium WebDriver
  • Python Selenium Javascript Ссылка Нажмите «Не удалось выполнить»
  • Ошибка Selenium Webdriver: «Невозможно загрузить профиль»
  • Скребок экрана с селеном 8
  • Как сократить длинные выражения XPath со многими альтернативами OR?
  • Firefox -> PhantomJs Вход на сайт не работает
  • Профиль веб-драйвера Selenium Firefox - отключить окна всплывающих окон и предупреждений
  • Эффективный метод для прокрутки страниц с использованием Selenium
  •  
    Interesting Posts for Van-Lav

    Если у моего имени класса python есть аббревиатура, должен ли я хранить его в верхнем регистре или только первую букву?

    Python: очистить файл журнала

    Получение UTC UTC в Python

    Анимация вращающегося 3D-графика в matplotlib

    Обнаружение пороговых значений в цветовом пространстве HSV (из RGB) с использованием Python / PIL

    IPython в Windows – без подсветки или автозаполнения

    Почему я не могу найти документацию / ресурсы pywin32

    Как установить специализированные среды для разных приложений Perl?

    Определение matplotlib.pyplot.axes.bbox

    Как изменить цвет моего виджета в Kivy во время выполнения?

    json.dump – UnicodeDecodeError: кодек 'utf8' не может декодировать байт 0xbf в позиции 0: недопустимый стартовый байт

    Python: regex findall

    Осциллирующая скорость обработки в скрипте python с использованием pysam.TabixFile для комментирования показаний

    Как применить некоторую функцию к python meshgrid?

    Python: Является ли math.factorial memoized?

    Python - лучший язык программирования в мире.