2017-02-16 3 views
2

Ich habe eine Liste von Filmen, für die ich die Bewertungen von faulen bekommen möchte www.rottentomatos.com, aber ich habe in einen Haken geraten.Selen und Python3: Auswahl Suchfeld auf www.rottentomatoes.com

Was ich will, ist in der Lage, den Titel jedes Films zu Website-Suchfeld übergeben und dann das Ergebnis zu bearbeiten, um die Überprüfung, die ich will.

Gegenwärtig kann ich nicht über die Suchphase hinausgehen, weil ich das Suchfeld nicht erfolgreich lokalisieren konnte.

Mein Code ist wie unten dargestellt:

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

browser = webdriver.Chrome('/home/zona/chromedriver') 
url = 'https://www.rottentomatoes.com/' 
browser.get(url) 
time.sleep(10) 

try: 
    element = WebdriverWait(browser, 10).until(
    EC.presence_of_element_located((By.XPATH,'//body//input[@name="search"]'))) 
    element = browser.find_element_by_xpath('//body//input[@name="search"]') 
    element.clear() 
    element.send_keys("avatar") 
except: 
    print("cound not find search box") 

time.sleep(5) 
browser.quit() 

bekomme ich die Ausgabe: cound nicht Suchfeld

Kann jemand finden Sie mir helfen zu finden, was ich falsch mache? Entschuldigung, wenn das zu einfach ist bitte, ich bin neu in der Programmierung und zu Python.

+0

Könnten Sie auch genaue Fehlerstacktrace teilen ?? –

+0

Beachten Sie, dass 'except' ohne explizite Ausnahmebedingung alle Fehler abfangen wird. Sie sollten besser 'außer TimeoutException' verwenden – Andersson

+0

Gibt es einen Grund, warum Sie nicht die ID,' search-term' verwenden? – JeffC

Antwort

1

Es ist nur Groß- und Kleinschreibung Problem.

Sie haben WebdriverWait (Kleinbuchstaben d) statt WebDriverWait verwendet.

Hinweis: Verwendetes Modul trackback, um den Stack-Trace zu drucken, um die Ausnahmedetails zu kennen.

Versuchen Sie, den folgenden Code:

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

browser = webdriver.Chrome(`/home/zona/chromedriver`) 
url = 'https://www.rottentomatoes.com/' 
browser.get(url) 
time.sleep(5) 

try: 
    element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH,'//body//input[@name="search"]'))) 
    # element = browser.find_element_by_xpath('//body//input[@name="search"]') 
    element.clear() 
    element.send_keys("avatar") 
except: 
    traceback.print_exc() 
    print("cound not find search box") 

time.sleep(5) 
browser.quit() 
+1

Nachdem ich die von Naveen empfohlenen Änderungen vorgenommen habe, funktioniert der Code jetzt wie erwartet. Danke Naveen. –

Verwandte Themen