2016-07-11 13 views
0

Ich baue ein Programm in Python, das mit einem Online-Shop interagiert. Bis jetzt bin ich in der Lage, den gewünschten Artikel zu finden und mit BeautifulSoup zur Seite zu navigieren, aber ich habe Probleme, auf die Schaltfläche "In den Warenkorb" zu klicken. Die meisten der Lösungen, die ich online mit Robobrowser und ähnlichem gefunden habe, würden funktionieren, außer dass sie sich mit dem Tag beschäftigen, der ein Methodenattribut hat. Die für auf der Seite, die ich mit wie folgt aussieht befasse:Webseite Schaltfläche zum Senden und Python, kein Aktionsattribut

<input class="button" name="commit" type="submit" value="add to cart"> 

Wie würde ich über „Klick“ dieses Buttons gehen? Welche Bibliotheken würde ich brauchen. Ich benutze übrigens Python 3, also kann ich Mechanize nicht benutzen. Vielen Dank im Voraus für die Hilfe.

+0

Sie müssen die URL teilen, es gibt unzählige Möglichkeiten, wie der Server damit umgehen kann –

Antwort

0

Sie können Selenium in Python verwenden.

Bitte benutzen Sie den Code-Schnipsel unten als Referenz:

from selenium import webdriver 

driver = webdriver.Firefox() 
driver.get("url") 
button = driver.find_element_by_css_selector("input[class='button']") 
button.click() 

Falls Sie mehrere Treffer erhalten, können Sie es einzuengen durch mehrere Attribute beteiligt: ​​

button = driver.find_element_by_css_selector("input[class='button'][name='commit']") 

Bitte auf diesen Link verweisen für mehr Beispiele auf Python Selen.

+1

Keine Notwendigkeit für ';' in Python, fehlende 'driver.get (" url ")' und die Selektoren können vereinfacht werden: ' input.button' bzw. 'input.button [name = commit]'. – alecxe

+0

Muss der Benutzer firefox installiert haben, damit dies funktioniert –

+0

Weil ich dies an Leute verteilen kann, die es möglicherweise nicht haben. –