diamond-in commited on
Commit
9025574
·
verified ·
1 Parent(s): 43974f6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -6
app.py CHANGED
@@ -8,15 +8,18 @@ import time
8
 
9
  def _make_driver():
10
  chrome_options = Options()
 
11
  chrome_options.add_argument("--headless")
12
  chrome_options.add_argument("--no-sandbox")
13
  chrome_options.add_argument("--disable-dev-shm-usage")
14
- driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
 
 
 
15
  driver.set_page_load_timeout(15)
16
  return driver
17
 
18
  def browse_and_extract(url: str, selector: str = "body") -> str:
19
- """Open a webpage and extract text of a CSS selector."""
20
  try:
21
  driver = _make_driver()
22
  driver.get(url)
@@ -28,7 +31,6 @@ def browse_and_extract(url: str, selector: str = "body") -> str:
28
  return f"Error: {e}"
29
 
30
  def screenshot(url: str) -> str:
31
- """Take a screenshot of a webpage."""
32
  try:
33
  driver = _make_driver()
34
  driver.get(url)
@@ -40,13 +42,12 @@ def screenshot(url: str) -> str:
40
  return f"Error: {e}"
41
 
42
  def click(url: str, selector: str) -> str:
43
- """Open a webpage, click an element, and return the new page title."""
44
  try:
45
  driver = _make_driver()
46
  driver.get(url)
47
  elem = driver.find_element(By.CSS_SELECTOR, selector)
48
  elem.click()
49
- time.sleep(2) # let navigation happen
50
  title = driver.title
51
  driver.quit()
52
  return f"Clicked {selector}, new title: {title}"
@@ -54,7 +55,6 @@ def click(url: str, selector: str) -> str:
54
  return f"Error: {e}"
55
 
56
  def fill(url: str, selector: str, text: str) -> str:
57
- """Open a webpage, fill an input box, and return page title."""
58
  try:
59
  driver = _make_driver()
60
  driver.get(url)
 
8
 
9
  def _make_driver():
10
  chrome_options = Options()
11
+ chrome_options.binary_location = "/usr/bin/chromium" # use HF Chromium
12
  chrome_options.add_argument("--headless")
13
  chrome_options.add_argument("--no-sandbox")
14
  chrome_options.add_argument("--disable-dev-shm-usage")
15
+
16
+ # webdriver-manager downloads the matching driver
17
+ service = Service(ChromeDriverManager().install())
18
+ driver = webdriver.Chrome(service=service, options=chrome_options)
19
  driver.set_page_load_timeout(15)
20
  return driver
21
 
22
  def browse_and_extract(url: str, selector: str = "body") -> str:
 
23
  try:
24
  driver = _make_driver()
25
  driver.get(url)
 
31
  return f"Error: {e}"
32
 
33
  def screenshot(url: str) -> str:
 
34
  try:
35
  driver = _make_driver()
36
  driver.get(url)
 
42
  return f"Error: {e}"
43
 
44
  def click(url: str, selector: str) -> str:
 
45
  try:
46
  driver = _make_driver()
47
  driver.get(url)
48
  elem = driver.find_element(By.CSS_SELECTOR, selector)
49
  elem.click()
50
+ time.sleep(2)
51
  title = driver.title
52
  driver.quit()
53
  return f"Clicked {selector}, new title: {title}"
 
55
  return f"Error: {e}"
56
 
57
  def fill(url: str, selector: str, text: str) -> str:
 
58
  try:
59
  driver = _make_driver()
60
  driver.get(url)