Spaces:
Build error
Build error
File size: 2,925 Bytes
550d985 33af16d 550d985 f8f569b 33af16d 550d985 a85e152 e0d8633 dfc3565 28faf6a 550d985 33af16d 550d985 4e6a7d4 550d985 4e6a7d4 550d985 4e6a7d4 550d985 4e6a7d4 550d985 4e6a7d4 c809540 a85e152 f8f569b 4e6a7d4 f8f569b 4e6a7d4 550d985 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
#from __future__ import annotations
from selenium import webdriver
import gradio as gr
import uuid
import re
from PIL import Image
from io import BytesIO
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
#from selenium_webdriver import WebElement
driver_type = 'chromedriver'
driver=False
def run_script(url: str, height: int, width: int):
uid=uuid.uuid4()
is_url=True
if is_url:
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
try:
driver = webdriver.Chrome(options=options)
driver.get(url)
#html=driver.page_source
driver.implicitly_wait(30)
driver.set_window_size(int(width), int(height))
obj = driver.find_element(By.CLASS_NAME, "main")
#obj = driver.find_element(By.ID, "app-container")
#obj = driver.find_element(By.ID, "conversation-feed")
#obj = driver.find_element_by_id("in_html")
######################
#inp = driver.find_element("id","input")
'''
find_element(By.ID, "id")
find_element(By.NAME, "name")
find_element(By.XPATH, "xpath")
find_element(By.LINK_TEXT, "link text")
find_element(By.PARTIAL_LINK_TEXT, "partial link text")
find_element(By.TAG_NAME, "tag name")
find_element(By.CLASS_NAME, "class name")
find_element(By.CSS_SELECTOR, "css selector")
'''
#inp.send_keys("test")
######################
cookie_jar = []
#cookie_jar.append(driver.get_cookies())
#print(cookie_jar)
screenshot = obj.screenshot(f'{uid}-tmp.png')
#screenshot = obj.get_screenshot_as_png()
except WebDriverException as e:
return [Image.new('RGB', (1, 1)), f'<center>{e}']
finally:
if driver:
driver.quit()
#return [Image.open(BytesIO(screenshot)), 'operation success.',cookie_jar,html]
return [Image.open(f'{uid}-tmp.png'), '<center>operation success.']
else:
return [None, '<center>Please enter a valid URL of a website/host.']
with gr.Blocks() as app:
with gr.Row():
with gr.Column():
inp = gr.Textbox(label="URL",lines=1)
btn= gr.Button()
with gr.Column():
with gr.Row():
height=gr.Number(label="Height", value=4096)
width=gr.Number(label="Width",value=800)
message=gr.HTML('<center>Enter URL')
outim = gr.Image()
btn.click(run_script,[inp,height,width],[outim,message])
app.launch() |