Tu fai desiderare selenio. Simula le interazioni GUI su un browser. Quando si fanno cose come inserire i dati del modulo di competizione, questo sarà il modo meno rilevabile.
Una nota sul selenio: non è una libreria specifica della lingua. Esistono associazioni specifiche per ogni lingua. La maggior parte degli esempi e le istruzioni che vedrai sono in realtà scritte in Java.
Una buona risorsa è Selenium-python
Ecco il suo esempio di lavoro. Compreso il pulsante di invio.
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
i = 2 # do it 2 times
while i > 0:
driver = webdriver.Firefox()
driver.get("http://www.jonessoda.com/contests/back2school")
def find_by_xpath(locator):
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, locator))
)
return element
class FormPage(object):
def fill_form(self, data):
find_by_xpath('//input[@name = "fname"]').send_keys(data['fname'])
find_by_xpath('//input[@name = "lname"]').send_keys(data['lname'])
find_by_xpath('//input[@name = "email"]').send_keys(data['email'])
find_by_xpath('//select[@name = "birthday_month"]').send_keys(data['month'])
find_by_xpath('//select[@name = "birthday_day"]').send_keys(data['day'])
find_by_xpath('//select[@name = "birthday_year"]').send_keys(data['year'])
return self # makes it so you can call .submit() after calling this function
def submit(self):
find_by_xpath('//input[@value = "Submit"]').click()
data = {
'fname': 'Sheep',
'lname': 'Test',
'email': '[email protected]',
'month': 'October',
'day': '29',
'year': '1920'
}
FormPage().fill_form(data).submit()
driver.quit() # closes the webbrowser
i = i - 1
Grazie mille! ESATTAMENTE quello che stavo cercando ... e io geuss GUI è abbastanza bello comunque. Sono un principiante in Python (poche settimane) Conosco la maggior parte dei comandi di base, ma uno penso che non capisco è la funzione del ciclo. Potresti modificare questo codice per avere una funzione di loop? (Anche inviare non funziona) – DarkPirate
Aggiunto. Invia funziona se lo chiami. È necessario eseguire 'FormPage(). Submit()' per inviarlo. – sheeptest
Inoltre, se lo fai come 1000x di fila è molto visibile che il tuo stesso indirizzo IP è lo spamming in. Vorrei esaminare la pianificazione in vari momenti casuali nel corso della giornata. – sheeptest