Selenium (с python), как изменить стиль css элемента
Я пытаюсь изменить стиль CSS элемента (пример: от "visibility: hidden;"
до "visibility: visible;"
), используя selenium .execute_script
. (любой другой метод через selenium + python будет принят грациозно).
мой код:
driver = webdriver.Firefox()
driver.get("http://www.example.com")
elem = driver.find_element_by_id('copy_link')
elem.execute_script( area of my problem )
что мне нужно сделать, чтобы играть с CSS веб-страницы?
Ответы
Ответ 1
Вот пример без использования jQuery. Он скроет логотип Google.
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.google.com")
driver.execute_script("document.getElementById('lga').style.display = 'none';")
Такую же идею можно использовать для отображения скрытого элемента, например, путем установки .style.display
на "block"
.
Ответ 2
Строка в execute_script()
- это код JS, который вы хотите запустить (docs).
Если вы используете jQuery, это может быть просто
driver.execute_script("$('#copy_link').css('visibility', 'visible');")
Ответ 3
Вот решение, которое я нашел, используя таблицы стилей документов.
Этот способ велик, потому что вы также можете добавить стиль псевдо-класса.
script = 'document.styleSheets[0].insertRule("button:focus {background-color: red !important;}", 0 )'
driver.execute_script(script)