2016-06-19 2 views
-2

Wie mein Skript auf einen manuellen Klick auf einen Absenden-Button wie in der folgenden Website warten warten?Wie warte ich auf eine bestimmte manuelle Aktion mit Selenium Python

driver.get("http://www.propertyguru.com.sg/singapore-property-listing?listing_type=sale&search_type=district&property_id=&interest=&distance=1&property_type=&freetext=&districts%5B%5D=&hdb_estate=&maxprice=&maxbed=&minbed=&minsize=&searchbtn=Search") 

Es gibt eine Menge Option in das Suchfeld von chosing, ich meine Schaben Skript warten soll, bis ich mit chossing alle Option M fertig sind und dann auf I-Taste SUCHE einreichen

+0

Dies ein bisschen besiegt den Punkt der Automatisierung von Aufgaben ... Warten auf manuelle Eingabe. Schreib die Auswahl und dann musst du nicht aufhören. – JeffC

+0

aber ich möchte diese Optionen manuell auswählen, dann klicken Sie auf die Schaltfläche "SUCHE", um, –

Antwort

0

einen Haltepunkt hinzufügen auf dem Code, den Sie will anhalten. Führen Sie das Skript im Debug-Modus aus (siehe Hilfedateien für Ihre IDE), es wird an diesem Punkt unterbrochen, Sie führen Ihre manuelle Aufgabe aus und starten das Skript anschließend wieder, wenn Sie fertig sind.

+0

eine gute Idee, aber ich möchte das Skript warten, bis ich die Taste drücken –

+0

Was passiert, wenn Sie die Taste drücken? Erscheint oder verschwindet ein Element oder ändert sich die Seite usw.? Sie können einen WebDriverWait mit einem sehr langen Timer versehen, der auf diese Änderung des Elements oder der URL wartet und dann weitergeht. – JeffC

+0

Wenn die Schaltfläche gedrückt wird, erstellen Sie eine neue URL-Basis auf Optionen, die wir wählen –

0
from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener 

# My custom event listener 
class MyListener(AbstractEventListener): 
    clicked = False 
    def before_click(self, element, driver): 
     print ("Event : before element click()") 


    def after_click(self, element, driver): 
     print ("Event : after element click()") 




# Get an event-firing-web-driver instance 
driver = EventFiringWebDriver(webdriver.Chrome(), MyListener()) 

# Visit a site 
driver.get("http://www.google.co.in/") 

# Find an element 
elem = driver.find_element_by_name("q") 

# Click on element 
elem.click() 

Ich habe diese Codezeile gefunden. Es ist in der Lage, eine Taste drücken Ereignis Gibt es eine Möglichkeit, dies zu kombinieren mit WebDriverWait()