Ein Memo der Ergebnisse bei der Arbeit mit Selen
↓ Einführungsmethode ■ Selenium WebDriver installieren - ausprobieren
Mit Python ist es übrigens möglich, mit einer solchen explosiven Geschwindigkeit zu starten
$ pip install selenium
#Oder
$ conda install selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
Kann im Headless-Modus durch Hinzufügen von --headless gestartet werden
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
Funktioniert außerhalb der Sandbox durch Hinzufügen von --no-sandbox
options.add_argument('--no-sandbox')
driver = webdriver.Chrome(options=options)
Proxy-Einstellungen
option.add_argument('--proxy-server=http://%s' % PROXY)
option.add_argument('--proxy-auth=%s' % PROXY_AUTH)
driver = webdriver.Chrome(options=options)
Legen Sie fest, dass in einem neuen Fenster geöffnet werden soll, anstatt in einer neuen Registerkarte eines vorhandenen Fensters
options.add_argument('--new-window')
driver = webdriver.Chrome(options=options)
Es scheint eine Zeit zu geben, in der das Knopfsystem mit Selen automatisiert ist. Wenn Sie js ausführen möchten, können Sie es wie unten gezeigt direkt ausführen, ohne auf eine Schaltfläche zu klicken.
browser.execute_script('javascript:hogehoge();')
iframe = driver.find_element_by_id('wpnt-notes-iframe2')
#Wechseln Sie zum erfassten Inline-Frame
driver.switch_to.frame(iframe)
「driver.close()」 Nur die aktive Registerkarte wird geschlossen.
「driver.quit()」 Schließen Sie alle Registerkarten und beenden Sie den Browser.
docker-selenium
Wenn Selen aus einem sauberen Zustand eingebracht wird, ist ein wenig mühsames Verfahren erforderlich. Ich fragte mich, ob es schnell wie ein Hafenarbeiter verwendet werden konnte und fand es.
Ich habe es mit Docker-Selen gesehen
Es scheint, dass VNC verwendet wird, um Chrom darin auszuführen und es dort auszuführen. Das Teilen von Dateien kann mit Docker-Kenntnissen problemlos durchgeführt werden und scheint sehr praktisch zu sein.
Durch Vorbereiten eines Containers für VNC und eines Containers für Browsertests können Sie schnell eine Testumgebung vorbereiten, die von dieser Entwicklungsumgebung getrennt ist.
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
Es ist sehr praktisch, dass die Browsertestumgebung mit Docker abgeschlossen wird.
■ Chrome-Boot-Optionen ■ [Python] Bearbeiten Sie den Inhalt von iframe mit Selenium ■ Lassen Sie uns Chrome DevTools beherrschen! Grundlagen des Debuggens mit Browserentwicklungstools, die für die Webentwicklung unerlässlich sind