2015-04-30 3 views
2

У меня есть проблема повторного использования объекта сеанса селена в 2-х функциях моего кода. Как я могу это сделать? Первая функция называется и она показывает результат. затем вторая функция, вызванная методом html post. как запустить селен во второй функции с первым сеансом функции? благодарякак повторно использовать сеанс селена в PHP?

$webdriver = new WebDriver("localhost", "4444"); 
$webdriver->connect("firefox"); 
$webdriver->get("http://AAA.AAA"); 
//here with some method i store picture of captcha to show 
echo '<form method="post" action="process.php"> 
<table class="table"> 
    <tr> 
     <td>Enter value of picture 
      <img src="thumb.jpeg"> 
     </td> 
     <td> 
      <input type="text" name="captcha" dir="ltr"> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
      <button class="submit">Send</button> 
     </td> 
    </tr> 
</table> 
</form>'; 

И process.php это так (вторая функция)

$webdriver->findElementBy("id","username")->sendKeys("XXX"); 
$webdriver->findElementBy("id","password")->sendKeys("YYYY"); 
$webdriver->findElementBy("id","captcha")->sendKeys($_POST['captcha']);  
$webdriver->findElementBy("id","submit")->click(); 

но $ WebDriver во второй функции не определен, и он должен иметь тот же идентификатор сессии с $ WebDriver в первой функции Как я могу это сделать?

+0

Если вы можете получить идентификатор сеанса перед нажатием кнопки «Отправить», jQuery или подобное может добавить скрытый элемент в форму, значение которой может быть идентификатором сеанса. Затем на 'process.php' проверьте значение значения POST var. –

+0

Это может помочь в концепции http://www.ontestautomation.com/using-the-page-object-design-pattern-in-selenium-webdriver/, хотя язык кода Java Java –

+0

нет, я не могу получить сеанс , и я уверен, что это не работает, сеанс селена - это объект с идентификатором ресурса. невозможно отправить это со скрытым значением – saboteur

ответ

Смежные вопросы