1

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')
Dani Banai
  • 1,080
  • 4
  • 14
  • 33

0 Answers0