2017-08-09 4 views
0

J'ai créé un script python qui utilise Selenium webdriver pour supprimer un site Web. Maintenant, j'essaie d'exécuter ce script à partir du Web en utilisant CGI. Donc, pour faire en sorte que mon serveur CGI travaille j'ai essayé ceci:Exécution de Webdriver Selenium à partir d'un script CGI Python

import cgi 
print 'Content-Type: text/html' 
print 
list_brand = ['VOLVO','FIAT', 'BMW'] 
print '<h1>TESTING CGI</h1>' 
print '<form>' 
print '<select>' 
for i in range(3): 
     print '<option value="' + list_brand[i] + '">'+ list_brand[i] +'</option>' 
print '</select>' 
print '</form>' 

Et il a bien fonctionné. Maintenant, quand je l'utilise Sélénium avec CGI en utilisant ce script:

import cgitb 
import cgi 
from selenium import webdriver 

print 'Content-Type: text/html' 
print 
cgitb.enable(display=0, logdir="C:/path/to/log/directory") 
path_to_pjs = 'C:path/to/phantomjs-2.1.1-windows/bin/phantomjs.exe' 
browser = webdriver.PhantomJS(executable_path = path_to_pjs) 
#Reaching to URL 
url = 'http://www.website.fr/cl/2/products' 
browser.get(url) 
div_set = browser.find_elements_by_class_name('productname') 
print '<form>' 
print '<select>' 
for div in div_set: 
     print '<option value="' + div.find_element_vy_tag_name('h3').text + '">'+ div.find_element_vy_tag_name('h3').text +'</option>' 
print '</select>' 
print '</form>' 

la page continue à charger, mais ne répond pas. Toute idée si c'est même possible (je veux dire courir le sélénium à partir d'un script cgi) ou pourquoi mon serveur ne répond pas?

Répondre

0

Eh bien, j'ai trouvé la solution à mon problème! pour un: je n'ai pas fait attention que j'ai écrit vy au lieu de by dans mes fonctions: div.find_element_by_tag_name. Et la deuxième chose était d'utiliser un serveur Apache. Pour une raison quelconque, le serveur lite python utilisant CGIHTTPServer ne fonctionne pas. J'ai donc utilisé XAMPP modifié le fichier httpd.conf et la dernière chose était d'ajouter le chemin #!/Python27/python au script.