Beispiel #1
0
def get_screenshot(request):
    """
    Take a screenshot and return a png file based on the url.
    """

    if request.method == 'POST' and 'url' in request.POST:
        url = request.POST.get('url', '')
        if url is not None and url != '':

            path = cdi.install(file_directory='./lib/',
                               verbose=True,
                               chmod=True,
                               overwrite=False,
                               version=None)
            driver = webdriver.Chrome(path)
            driver.get(url)
            # driver.set_window_size(width, height)

            el = driver.find_element_by_tag_name('body')
            el.screenshot('screenshot.png')

            # screenshot = driver.get_screenshot_as_png()

            screenfile = ''
            with open("screenshot.png", "rb") as imageFile:
                screenfile = base64.b64encode(imageFile.read())
            os.remove('screenshot.png')
            # image_64_encode = base64.encodestring(screenshot)
            var_dict = {'screenshot': screenfile}

            driver.quit()
            # return render(request, 'index.html', var_dict)
            return render(request, 'dsrshot/index.html', var_dict)
    else:
        return HttpResponse('Error')
Beispiel #2
0
 def setUp(self):
     path = cdi.install(file_directory='./lib/',
                        verbose=False,
                        chmod=True,
                        overwrite=False,
                        version=None)
     self.driver = webdriver.Chrome(path)
Beispiel #3
0
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import chromedriver_install as cdi
from selenium.common.exceptions import TimeoutException

path = cdi.install(file_directory='./lib/',
                   verbose=False,
                   chmod=True,
                   overwrite=False,
                   version=None)

driver = webdriver.Chrome(path)

driver.get("http://www.yahoo.com")

try:
    # tells WebDriver to poll the DOM for a certain amount
    driver.implicitly_wait(10)  # seconds
    myDynamicElement = driver.find_element_by_id("myDynamicElement")

    # WebDriverWait by default calls the ExpectedCondition every 500 milliseconds until it returns successfully.
    # wait = WebDriverWait(driver, 10)
    # element = wait.until(
    #    EC.presence_of_element_located((By.ID, "myDynamicElement"))
    # )
except TimeoutException as error:
    print(error)
    print('The TimeoutException() function was executed')
finally:
Beispiel #4
0
import re
from subprocess import run

import chromedriver_install as cdi

# https://chromedriver.chromium.org/downloads
Versions = {"88": "88.0.4324.96", "83": "83.0.4103.39"}

chrome_version = (
    run(["google-chrome", "--version"], capture_output=True)
    .stdout.decode("utf-8")
    .strip()
)
print(chrome_version)
major = re.search("Google Chrome (\d+)", chrome_version).group(1)

cdi.install(file_directory="tests/selenium", overwrite=True, version=Versions[major])