
Un mémo des résultats obtenus lors de l'utilisation du sélénium
↓ Méthode d'introduction ■ Installation de Selenium WebDriver - Essai
Au fait, avec python, il est possible de démarrer à une vitesse explosive comme celle-ci
$ pip install selenium
#Ou
$ conda install selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
Peut être démarré en mode sans tête en ajoutant --headless
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
Fonctionne en dehors du bac à sable en ajoutant --no-sandbox
options.add_argument('--no-sandbox')
driver = webdriver.Chrome(options=options)
Paramètres du proxy
option.add_argument('--proxy-server=http://%s' % PROXY)
option.add_argument('--proxy-auth=%s' % PROXY_AUTH)
driver = webdriver.Chrome(options=options)
Configurer pour ouvrir dans une nouvelle fenêtre au lieu d'ouvrir dans un nouvel onglet d'une fenêtre existante
options.add_argument('--new-window')
driver = webdriver.Chrome(options=options)
Il semble y avoir un moment où le système de boutons est automatisé avec du sélénium. Si vous souhaitez exécuter js, vous pouvez l'exécuter directement comme indiqué ci-dessous sans cliquer sur un bouton.
browser.execute_script('javascript:hogehoge();')
iframe = driver.find_element_by_id('wpnt-notes-iframe2')
#Passer au cadre en ligne acquis
driver.switch_to.frame(iframe)
「driver.close()」 Seul l'onglet actif est fermé.
「driver.quit()」 Fermez tous les onglets et quittez le navigateur.
docker-selenium
Lorsque le sélénium est introduit à partir d'un état propre, une procédure peu gênante est nécessaire. Je me suis demandé s'il pouvait être utilisé rapidement comme un docker et je l'ai trouvé.
Je l'ai vu en utilisant docker-sélénium
Il semble que VNC soit utilisé pour exécuter le chrome à l'intérieur et l'exécuter là-bas. Il semble être très pratique de partager des fichiers facilement si vous avez des connaissances de docker.
En préparant un conteneur pour VNC et un conteneur pour le test du navigateur, vous pouvez rapidement préparer un environnement de test distinct de l'environnement de développement comme celui-ci.
version: '3.7'
services:
  chrome-server:
    build:
      context: ./chrome
      dockerfile: Dockerfile
    container_name: 'chrome-server'
    hostname: 'chrome-server'
    ports:
      - 9000:5900
      - 4444:4444
    environment:
      - 'TZ=Asia/Tokyo'
      - 'HUB_PORT_4444_TCP_ADDR=hub'
      - 'HUB_PORT_4444_TCP_PORT=4444'
    volumes:
      - ./chrome/downloads:/root/Downloads
  py-server:
    build:
      context: ./py-server
      dockerfile: Dockerfile
     container_name: 'py-server'
     hostname: 'py-server'
     environment:
       - 'TZ=Asia/Tokyo'
     tty: true
     depends_on:
       - chrome-server
     volumes:
       - ./py-server/src:/app/src
       - ./py-server/images:/app/images
     env_file:
       - app.env
Il est très pratique que l'environnement de test du navigateur soit complété par docker.
■ options de démarrage de chrome ■ [Python] Manipuler le contenu d'iframe avec Selenium ■ Maîtrisons Chrome DevTools! Bases du débogage avec les outils de développement de navigateur essentiels pour le développement Web