[Python] Getting [WinError 5] Access is denied error while using browser-use agent in python

Discussão em 'Python' iniciado por Stack, Fevereiro 1, 2025.

  1. Stack

    Stack Membro Participativo

    I am using a test script given in browser-use examples, but currently I am getting following error from browser-use agent: '[WinError 5] Access is denied'. My code looks like this:

    import csv
    import os
    import re
    import sys
    from pathlib import Path

    from PyPDF2 import PdfReader

    from browser_use.browser.browser import Browser, BrowserConfig

    sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
    import asyncio
    from typing import List, Optional

    from dotenv import load_dotenv
    from langchain_google_genai import ChatGoogleGenerativeAI
    from pydantic import BaseModel, SecretStr

    from browser_use import ActionResult, Agent, Controller
    from browser_use.browser.context import BrowserContext

    load_dotenv()
    import logging

    logger = logging.getLogger(__name__)
    # full screen mode
    controller = Controller()
    CV = Path.cwd() / 'AbhayBhardwajResumeV1.pdf'


    class Job(BaseModel):
    title: str
    link: str
    company: str
    fit_score: float
    location: Optional[str] = None
    salary: Optional[str] = None


    @controller.action(
    'Save jobs to file - with a score how well it fits to my profile', param_model=Job
    )
    def save_jobs(job: Job):
    with open('jobs.csv', 'a', newline='') as f:
    writer = csv.writer(f)
    writer.writerow([job.title, job.company, job.link, job.salary, job.location])

    return 'Saved job to file'


    @controller.action('Read jobs from file')
    def read_jobs():
    with open('jobs.csv', 'r') as f:
    return f.read()


    @controller.action('Read my cv for context to fill forms')
    def read_cv():
    pdf = PdfReader(CV)
    text = ''
    for page in pdf.pages:
    text += page.extract_text() or ''
    logger.info(f'Read cv with {len(text)} characters')
    return ActionResult(extracted_content=text, include_in_memory=True)


    @controller.action(
    'Upload cv to element - call this function to upload if element is not found, try with different index of the same upload element',
    requires_browser=True,
    )
    async def upload_cv(index: int, browser: BrowserContext):
    path = str(CV.absolute())
    dom_el = await browser.get_dom_element_by_index(index)

    if dom_el is None:
    return ActionResult(error=f'No element found at index {index}')

    file_upload_dom_el = dom_el.get_file_upload_element()

    if file_upload_dom_el is None:
    logger.info(f'No file upload element found at index {index}')
    return ActionResult(error=f'No file upload element found at index {index}')

    file_upload_el = await browser.get_locate_element(file_upload_dom_el)

    if file_upload_el is None:
    logger.info(f'No file upload element found at index {index}')
    return ActionResult(error=f'No file upload element found at index {index}')

    try:
    await file_upload_el.set_input_files(path)
    msg = f'Successfully uploaded file to index {index}'
    logger.info(msg)
    return ActionResult(extracted_content=msg)
    except Exception as e:
    logger.debug(f'Error in set_input_files: {str(e)}')
    return ActionResult(error=f'Failed to upload file to index {index}')


    browser = Browser(
    config=BrowserConfig(
    chrome_instance_path='C:\\Program Files (x86)\\Google\\Chrome\\Application',
    disable_security=True
    )
    )


    async def main():
    # ground_task = (
    # 'You are a professional job finder. '
    # '1. Read my cv with read_cv'
    # '2. Read the saved jobs file '
    # '3. start applying to the first link of Amazon '
    # 'You can navigate through pages e.g. by scrolling '
    # 'Make sure to be on the english version of the page'
    # )
    ground_task = (
    'You are a professional job finder. '
    '1. Read my cv with read_cv'
    'find ml internships in and save them to a file'
    'search at company:'
    )
    tasks = [
    ground_task + '\n' + 'Google',
    # ground_task + '\n' + 'Amazon',
    # ground_task + '\n' + 'Apple',
    # ground_task + '\n' + 'Microsoft',
    # ground_task
    # + '\n'
    # + 'go to https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/job/Taiwan%2C-Remote/Fulfillment-Analyst---New-College-Graduate-2025_JR1988949/apply/autofillWithResume?workerSubType=0c40f6bd1d8f10adf6dae42e46d44a17&workerSubType=ab40a98049581037a3ada55b087049b7 NVIDIA',
    # ground_task + '\n' + 'Meta',
    ]
    model = ChatGoogleGenerativeAI(
    model="gemini-1.5-pro",
    api_key="AIzaSyDD_j88wnUiW90o-pTld0hoAGTiMhTafQY"
    )

    agents = []
    for task in tasks:
    agent = Agent(task=task, llm=model, controller=controller, browser=browser)
    agents.append(agent)

    await asyncio.gather(*[agent.run() for agent in agents])


    if __name__ == '__main__':
    asyncio.run(main())


    And I am getting error output like:

    INFO [browser_use] BrowserUse logging setup complete with level info
    INFO [root] Anonymized telemetry enabled. See https://github.com/gregpr07/browser-use for more information.
    INFO [agent] Starting task: You are a professional job finder. 1. Read my cv with read_cvfind ml internships in and save them to a filesearch at company:
    Google
    INFO [agent]
    Step 1
    WARNING [browser] Page load failed, continuing...
    ERROR [agent] ❌ Result failed 1/3 times:
    [WinError 5] Access is denied
    INFO [agent]
    Step 1
    WARNING [browser] Page load failed, continuing...
    ERROR [agent] ❌ Result failed 2/3 times:
    [WinError 5] Access is denied
    INFO [agent]
    Step 1
    WARNING [browser] Page load failed, continuing...
    ERROR [agent] ❌ Result failed 3/3 times:
    [WinError 5] Access is denied
    ERROR [agent] ❌ Stopping due to 3 consecutive failures
    WARNING [agent] No history to create GIF from


    Please help in finding what's the issue here?

    I was expecting, the browser would open and do te task I passed it in the task variable

    Continue reading...

Compartilhe esta Página