{"id":18266584,"url":"https://github.com/lnds/seleniumhandson","last_synced_at":"2025-04-04T21:32:58.132Z","repository":{"id":62109739,"uuid":"557599888","full_name":"lnds/SeleniumHandsOn","owner":"lnds","description":null,"archived":false,"fork":false,"pushed_at":"2022-10-26T01:49:26.000Z","size":27011,"stargazers_count":0,"open_issues_count":0,"forks_count":20,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-14T14:59:49.999Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lnds.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-26T00:57:17.000Z","updated_at":"2023-10-19T16:49:15.000Z","dependencies_parsed_at":"2022-10-26T14:45:28.160Z","dependency_job_id":null,"html_url":"https://github.com/lnds/SeleniumHandsOn","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnds%2FSeleniumHandsOn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnds%2FSeleniumHandsOn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnds%2FSeleniumHandsOn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnds%2FSeleniumHandsOn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lnds","download_url":"https://codeload.github.com/lnds/SeleniumHandsOn/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223160003,"owners_count":17097564,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T11:24:12.180Z","updated_at":"2024-11-05T11:24:13.074Z","avatar_url":"https://github.com/lnds.png","language":"Python","readme":"# SeleniumHandsOn\n\nEste repo tiene un laboratorio de seleniun usando python\n\n# Paso 0\n\nSi usas replit modificar el archivo `replit.nix` asegurandose que contenga lo siguiente:\n\n```\n{ pkgs }: {\n  deps = [\n    pkgs.vim\n    pkgs.python38Full\n    pkgs.chromium\n    pkgs.chromedriver\n  ];\n  env = {\n    PYTHON_LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [\n      # Needed for pandas / numpy\n      pkgs.stdenv.cc.cc.lib\n      pkgs.zlib\n      # Needed for pygame\n      pkgs.glib\n      # Needed for matplotlib\n      pkgs.xorg.libX11\n    ];\n    PYTHONBIN = \"${pkgs.python38Full}/bin/python3.8\";\n    LANG = \"en_US.UTF-8\";\n  };\n}\n```\n\nLo relevante son las lineas que dicen:\n\n```\npkgs.chromium\npkgs.chromedriver\n```\n\nPara editar este archivo deben usar la shell de replit e instalar `nano` o `vim`.\n\n\n# Paso 1\n\nCrear un archivo `main.py` que contenga lo siguiente:\n\n```\nfrom selenium import webdriver\nfrom selenium.webdriver.chrome.options import Options\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.common.keys import Keys\n\nchrome_options = Options()\nchrome_options.add_argument('--no-sandbox')\nchrome_options.add_argument('--disable-dev-shm-usage')\n\ndriver = webdriver.Chrome(options=chrome_options)\ndriver.get(\"https:/google.com\")\n```\n\nLuego ejecutar presionando el botón `\u003e Run`, debería abrir la página de `google.com`.\n\n# Paso 2\n\nAgrega estas lineas a `main.py`\n\n```\n## Encontrar Elementos\n\ngoogle_text = driver.find_element(By.CLASS_NAME, \"MV3Tnb\").text\n\nprint(google_text)\n\ninput_box = driver.find_element(By.NAME, \"q\")\n\ninput_box.send_keys(\"selenium\")\n\ninput_box.send_keys(Keys.ENTER)\n```\n\nPresiona `\u003e Run` y observa que ocurre.\n\nPrueba cambiando `\"selenium\"` por otros valores.\n\n# Paso 3\n\nAgrega estas lineas a `main.py`\n\n```\n## Pausa de 5 segundos\n\nimport time\n\nprint('esperaremos 5 segundos' )\ntime.sleep(5)\n\n## Volvemos a la home page\n\nhome_link = driver.find_element(By.ID, \"logo\")\n\nhome_link.click()\n\n```\n\nObserva que pasa después de presionar `\u003e Run`.\n\n# Paso 4\n\nAgrega estas lineas a `main.py` y ejecutalas presionando `\u003e Run`\n\n```\n## Buscar\n\ninput_box = driver.find_element(By.NAME, \"q\")\n\ninput_box.send_keys(\"selenium\")\n\ninput_box.send_keys(Keys.ENTER)\n\nlink = driver.find_element(By.PARTIAL_LINK_TEXT, \"Selenium\")\n\nprint(link.text)\n\nlink.click()\n```\n\n## Ejercicios\n\n1. Modifica el script para que abra la página en Wikipeda sobre Selenium\n2. Modifica el script para que abra la página web de tu organización\n3. Navega en forma automatizada la página web de tu organización\n4. ¿Puedes escribir un script para llenar gran aprte del formulario de esta página: https://www.selenium.dev/selenium/web/web-form.html?\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flnds%2Fseleniumhandson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flnds%2Fseleniumhandson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flnds%2Fseleniumhandson/lists"}