When i run this script via linux console... with
python TestPoptinPixel.py
It's work fine!
But when i tried to run the commend via php script
<?php
$command = escapeshellcmd('python /home/ubuntu/python-
test/TestPoptinPixel.py');
$output = shell_exec($command);
echo $output;
?>
I getting the next output:
Start - TestPoptinPixel1 Start - TestPoptinPixel2
and after 1 minutes the i get timeout.
I'ts seem the it's getting stuck in this line:
self.browser = webdriver.Firefox(firefox_binary=FirefoxBinary('/usr/bin/firefox'))
The file TestPoptinPixel.py
#!/usr/bin/env python
from pyvirtualdisplay import Display
import unittest
import time
import traceback
import os
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from Logger import Logger
from selenium.common.exceptions import NoSuchElementException
class TestPoptinPixel(unittest.TestCase):
def setUp(self):
print "Start - TestPoptinPixel2"
self.browser = webdriver.Firefox(firefox_binary=FirefoxBinary('/usr/bin/firefox'))
self.wait = WebDriverWait(self.browser, 30)
self.browser.implicitly_wait(30)
self.browser.maximize_window()
self.browser.get('http://tipesh.net/testim/')
self.logger = Logger('poptin_test').logger;
self.logger.info('Start TestPoptinPixel')
self.pixel = self.wait.until(EC.presence_of_element_located((By.ID,"pixel-script-poptin")))
self.poptin = self.wait.until(EC.presence_of_element_located((By.ID ,"poptinFormSubmitText")))
def testPoptinConversion(self):
print "Start - testPoptinConversion"
self.conversion_btn = self.wait.until(EC.visibility_of_element_located((By.ID,"poptinFormSubmitText")))
print "PoptinConversion -> PoptinVisible!"
self.conversion_btn.click()
time.sleep(5)
self.conversion = True;
try:
print self.browser.find_element(By.ID , 'poptinFormSubmitText').source
self.conversion = False;
print "END - PoptinConversion -> False!"
except:
print "END - PoptinConversion -> Success!"
self.assertTrue(self.conversion)
def tearDown(self):
self.browser.quit()
def is_element_present(self, how, what):
"""
Helper method to confirm the presence of an element on page
:params how: By locator type
:params what: locator value
"""
try: self.browser.find_element(by=how, value=what)
except NoSuchElementException: return False
return True
if __name__ == '__main__':
print "Start - TestPoptinPixel1"
display = Display(visible=0, size=(800, 600))
display.start()
unittest.main(verbosity=2)
os.system('pkill -9 firefox')
os.system('pkill -9 python')
os.system('pkill -9 geckodriver')
os.system('pkill -9 Xvfb')