JavaScript¶
Выполнение произвольного JavaScript-кода на странице.
execute_script(script, *args)¶
Выполняет JavaScript в контексте страницы и возвращает результат.
# Чтение данных
title = driver.execute_script("return document.title")
text = driver.execute_script("return document.querySelector('.x').innerText")
token = driver.execute_script("return localStorage.getItem('token')")
# Манипуляция страницей
driver.execute_script("document.querySelector('#btn').click()")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
# С аргументами
driver.execute_script("arguments[0].scrollIntoView()", element)
Часто используемые сценарии¶
Извлечение данных из таблицы¶
data = driver.execute_script("""
return Array.from(document.querySelectorAll('table tr')).map(row =>
Array.from(row.querySelectorAll('td')).map(td => td.innerText)
)
""")
Манипуляция атрибутами¶
driver.execute_script("""
document.querySelectorAll('.hidden').forEach(el =>
el.style.display = 'block'
)
""")
Симуляция событий¶
driver.execute_script("""
var el = document.querySelector('input#file');
var event = new MouseEvent('click', {bubbles: true});
el.dispatchEvent(event);
""")