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