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 python
  • Селен неожиданно имеет проблемы
  • Скрытые данные Python Selenium
  • принять ssl cert с марионеткой firefox webdrive python splinter
  • Есть ли способ найти элемент по атрибутам в Python Selenium?
  • Как получить текст элемента в Selenium WebDriver (через Python api) без включения текста дочернего элемента?
  • Python Selenium переключается в iframe в iframe
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.