More graceful browsing error handling (#3494)
parent
aa3e37ac14
commit
92009ceb32
|
@ -7,6 +7,7 @@ from sys import platform
|
||||||
|
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
from selenium import webdriver
|
from selenium import webdriver
|
||||||
|
from selenium.common.exceptions import WebDriverException
|
||||||
from selenium.webdriver.chrome.options import Options as ChromeOptions
|
from selenium.webdriver.chrome.options import Options as ChromeOptions
|
||||||
from selenium.webdriver.common.by import By
|
from selenium.webdriver.common.by import By
|
||||||
from selenium.webdriver.firefox.options import Options as FirefoxOptions
|
from selenium.webdriver.firefox.options import Options as FirefoxOptions
|
||||||
|
@ -43,7 +44,14 @@ def browse_website(url: str, question: str) -> tuple[str, WebDriver]:
|
||||||
Returns:
|
Returns:
|
||||||
Tuple[str, WebDriver]: The answer and links to the user and the webdriver
|
Tuple[str, WebDriver]: The answer and links to the user and the webdriver
|
||||||
"""
|
"""
|
||||||
driver, text = scrape_text_with_selenium(url)
|
try:
|
||||||
|
driver, text = scrape_text_with_selenium(url)
|
||||||
|
except WebDriverException as e:
|
||||||
|
# These errors are often quite long and include lots of context.
|
||||||
|
# Just grab the first line.
|
||||||
|
msg = e.msg.split("\n")[0]
|
||||||
|
return f"Error: {msg}", None
|
||||||
|
|
||||||
add_header(driver)
|
add_header(driver)
|
||||||
summary_text = summary.summarize_text(url, text, question, driver)
|
summary_text = summary.summarize_text(url, text, question, driver)
|
||||||
links = scrape_links_with_selenium(driver, url)
|
links = scrape_links_with_selenium(driver, url)
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
from autogpt.commands.web_selenium import browse_website
|
||||||
|
|
||||||
|
|
||||||
|
def test_browse_website():
|
||||||
|
url = "https://barrel-roll.com"
|
||||||
|
question = "How to execute a barrel roll"
|
||||||
|
|
||||||
|
response, _ = browse_website(url, question)
|
||||||
|
assert "Error" in response
|
||||||
|
# Sanity check that the response is not too long
|
||||||
|
assert len(response) < 200
|
Loading…
Reference in New Issue