selenium

Start Web Driver

# selenium
from selenium import webdriver
from selenium.webdriver.firefox.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

self.webdriver = webdriver.Firefox(options=chrome_options)

Скачивание chromedriver для версии нашего браузера

webdriver.Chrome(
    ChromeDriverManager().install(), options=chrome_options
)

Переход на страницу

import time

TIME_SLEEP = 1

# open target
self.webdriver.get(target.url)

# pause for rendering page
time.sleep(TIME_SLEEP)

Работа со страницей

parent_page_url = self.webdriver.current_url

for script in self.webdriver.find_elements_by_tag_name('script'):
    src = script.get_attribute('src')
    content_script = script.get_attribute('innerHTML')

Открытие локального HTML-файла

cj_target = os.path.join(CLICKJACKING_DIR, 'cj-target.html')
local_url = f'file://{cj_target}'

self.webdriver.get(local_url)
...

PhantomJS: Запуск своего скрипта

from selenium import webdriver

myscript = open('jsTestForSelenium', 'r')
myscript.readlines()

driver = webdriver.PhantomJS()
result = driver.execute_script(script)

driver.quit()

Закрытие драйвера

Запуск драйвера - процесс не быстрый. Для каждого открытия ссылки не надо запускать новый драйвер.

self.webdriver.quit()

Papers

Пример: https://heapspray.io/automating-pentests-with-webdriver.html

Last updated