2017-02-18 3 views
-1

ich einfach mich gefragt, wenn Selen für Python mit, warum gibt es zwei Klammern zwischen den element_to_be_clickable und den By Methoden, wie zum Beispiel:Warum gibt es 2 Klammern in EC.element_zu_be_klickbar ((By.CSS_SELECTOR, "css_selector")))?

WebDriverWait(browser, 50).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, "css_selector"))) 

Dies ist in der Dokumentation auch visble - http://selenium-python.readthedocs.io/waits.html

Alle Antworten ?

Prost

+0

Offensichtlich ist dies, weil 'element_to_be_clickable()' iterable Objekt als Argument erhalten sollte. Wenn Sie parentses verwirren, können Sie 'EC.element_zu_be_klickbar ([By.CSS_SELECTOR," css_selector "])' :) – Andersson

+0

@Andersson verwenden, was für einen anderen "offensichtlich" ist, ist für einen anderen nicht immer offensichtlich. Das ist einer der Gründe, warum diese Seite existiert. – JeffC

+0

@JeffC, 'Tuple' sind die Grundlagen von' Python' und ich bin mir ziemlich sicher, dass es im Web mehr als genug Informationen darüber gibt, was es ist, wie man es benutzt und was für .. – Andersson

Antwort

1

Gemäß der API documentation Verfahren element_to_be_clickable ein Argument erwartet: einen Lokalisierer. Ein Locator ist ein Tupel von (by, path).

Also ist das innere Klammerpaar für das Tupel-Literal, während die äußeren Klammern die Funktionsparameter begrenzen (in diesem Fall nur eine).

Verwandte Themen