[PYTHON] Selen: Warten Sie mit UND / ODER auf das Element

Ist das ok?

CSS Kellner

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


class ByCss(object):
    def __init__(self, *args, **kwargs):
        self.meet_all = kwargs.get('meet_all', False)
        self.ecs = [
            EC.presence_of_element_located((By.CSS_SELECTOR, i)) for i in args]

    def __call__(self, driver):
        if self.meet_all:
            return all([fn(driver) for fn in self.ecs])
        else:
            for fn in self.ecs:
                try:
                    if fn(driver): return True
                except:
                    pass

    @classmethod
    def wait(cls, driver, *args, **kwargs):
        seconds = kwargs.get('seconds', 10)
        WebDriverWait(driver, seconds).until(cls(*args, **kwargs))
        return [driver.find_elements_by_css_selector(i) for i in args]

Stichprobe

from selenium import webdriver
br = webdriver.Safari()
login_portal(br)
def login_portal(br):
    usr_name_css = 'form[name="auth"] input[name="usr_name"]'
    usr_password_css = 'form[name="auth"] input[name="usr_password"]'

    usr_name, usr_password = ByCss.wait(
        br, usr_name_css, usr_password_css, meet_all=True)

    usr_name[0].send_keys(USER)
    usr_password[0].send_keys(PASSWORD)

    submit_css = 'form[name=auth] input[type=submit]'
    br.find_elements_by_css_selector(submit_css)[0].click()

Recommended Posts

Selen: Warten Sie mit UND / ODER auf das Element
Scraping mit Python, Selen und Chromedriver
Holen Sie sich HTML von Element mit Python-Selen
Üben des Web-Scrapings mit Python und Selen
Zeichnen Sie Schwarzweißdiagramme, die für Papiere mit Matplotlib oder Pylab geeignet sind
Schaben mit Selen
Schaben mit Selen ~ 2 ~
Warten Sie, bis sich in Selen ein weiteres Fenster öffnet
Kausales Denken und kausale Suche von Python (für Anfänger)
Versuchen Sie, Google Chrome mit Python und Selenium auszuführen
Phantomjs und Selen
Installieren Sie Pip und Pandas mit Ubuntu oder VScode
Schaben mit Selen
Beginnend mit Selen
Ziehen Sie eine lokale Datei mit Selenium (Python) per Drag & Drop.
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
Automatisches Folgen auf Twitter mit Python und Selen! (RPA)
Automatisieren Sie Chrome mit Python und Selen auf Ihrem Chromebook
Firefox-Add-On, das Elementspezifikationen für Selenium WebDriver kopiert
Ich habe einen einfachen RPA für die Anmeldung mit Selen ausprobiert
Übersetzen Sie DeepL automatisch mit Python und Selen ins Englische
Installieren Sie tweepy mit pip und verwenden Sie es für API 1.1
Vorlage für die Flasche bei der Bereitstellung mit Github und Bitbucket
Erfolgreiches Schaben mit Selen
Screenshot mit Selen (Python Edition)
Ich suche einen einheitlichen Weg, um auf Statusänderungen von Selenium für Python-Elemente zu warten
Schaben mit Selen [Python]
3D oder D mit Py
Mit und ohne WSGI
Installationsverfahren für Python und Ansible mit einer bestimmten Version
Analysieren Sie Aktien mit Python und suchen Sie nach günstigen Handelsphasen
Komfortables LaTeX mit Windows-Subsystem für Linux und VS-Code
4 Techniken zum Erstellen von Diagrammen für Papiere und Präsentationsmaterialien mit matplotlib
Bibliothek zur Angabe eines Nameservers in Python und Dig
Leistungsvergleich zwischen zweidimensionaler Matrixberechnung und für mit Numpy
Erstellen Sie AND / OR / NAND / XOR-Schaltkreise mit FPGA, die für Deep Learning mit Polyphony erforderlich sein können