コード例 #1
0
 function test1()
 {
     $user = new User();
     $user->setEmail("*****@*****.**");
     $user->setUsername("test");
     $user->setPassword("ouhosu");
     $this->em->persist($user);
     $tree = new Tree();
     $tree->setTitleAdmin('Tree');
     $tree->setPublicId('tree');
     $tree->setOwner($user);
     $this->em->persist($tree);
     $treeVersion = new TreeVersion();
     $treeVersion->setTree($tree);
     $treeVersion->setPublicId('version');
     $treeVersion->setFeatureLibraryContent(true);
     $this->em->persist($treeVersion);
     $startNode = new Node();
     $startNode->setTreeVersion($treeVersion);
     $startNode->setTitle("START HERE");
     $startNode->setPublicId('start');
     $this->em->persist($startNode);
     $libraryContent = new LibraryContent();
     $libraryContent->setTreeVersion($treeVersion);
     $libraryContent->setBodyText('TREE CONTENT');
     $this->em->persist($libraryContent);
     $nodeHasLibraryContent = new NodeHasLibraryContent();
     $nodeHasLibraryContent->setSort(0);
     $nodeHasLibraryContent->setNode($startNode);
     $nodeHasLibraryContent->setLibraryContent($libraryContent);
     $this->em->persist($nodeHasLibraryContent);
     $treeVersionPublished = new TreeVersionPublished();
     $treeVersionPublished->setTreeVersion($treeVersion);
     $treeVersionPublished->setPublishedBy($user);
     $this->em->flush();
     $tvsn = new TreeVersionStartingNode();
     $tvsn->setNode($startNode);
     $tvsn->setTreeVersion($treeVersion);
     $this->em->persist($tvsn);
     $published = new TreeVersionPublished();
     $published->setTreeVersion($treeVersion);
     $this->em->persist($published);
     $this->em->flush();
     // ######################################################## LOAD PAGE
     $this->driver->get('http://localhost/app_dev.php/tree/tree/demo');
     $startLink = $this->driver->findElement(WebDriverBy::id('StartTreeLink'));
     $this->assertEquals('Start Tree!', $startLink->getText());
     // ######################################################## Start Tree
     $startLink->click();
     sleep($this->sleepOnActionWithNetwork);
     $nodeTitle = $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElement(WebDriverBy::className('node'))->findElement(WebDriverBy::className('title'));
     $this->assertEquals('START HERE', $nodeTitle->getText());
     $nodeBody = $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElement(WebDriverBy::className('node'))->findElement(WebDriverBy::className('body'));
     $this->assertEquals('TREE CONTENT', $nodeBody->getText());
 }
コード例 #2
0
ファイル: WebDriverTest.php プロジェクト: surjit/Codeception
 public function testWebDriverByLocators()
 {
     $this->module->amOnPage('/login');
     $this->module->seeElement(WebDriverBy::id('submit-label'));
     $this->module->seeElement(WebDriverBy::name('password'));
     $this->module->seeElement(WebDriverBy::className('optional'));
     $this->module->seeElement(WebDriverBy::cssSelector('form.global_form_box'));
     $this->module->seeElement(WebDriverBy::xpath(\Codeception\Util\Locator::tabIndex(4)));
     $this->module->fillField(WebDriverBy::name('password'), '123456');
     $this->module->amOnPage('/form/select');
     $this->module->selectOption(WebDriverBy::name('age'), 'child');
     $this->module->amOnPage('/form/checkbox');
     $this->module->checkOption(WebDriverBy::name('terms'));
     $this->module->amOnPage('/');
     $this->module->seeElement(WebDriverBy::linkText('Test'));
     $this->module->click(WebDriverBy::linkText('Test'));
     $this->module->seeCurrentUrlEquals('/form/hidden');
 }
コード例 #3
0
 /**
  * Page has 25 items.
  */
 public function testPageHas25Items()
 {
     $this->webDriver->get('https://github.com/trending?l=php');
     self::assertCount(25, $this->webDriver->findElements(WebDriverBy::className('repo-list-item')));
 }
コード例 #4
0
 /**
  * Client expects that an element is selected by the given class name.
  * Returns true when the element is selected and false otherwise.
  * Retry the process two times or until the attempts argument count
  * is reached when a stale element reference exception is thrown.
  * Recommended usage in web driver waits.
  *
  * @param string $className Class name of expected element.
  * @param int    $attempts  (Optional) Attempts until the method will fail and return false.
  *
  * @return bool
  */
 public function expectsToBeSelectedByClassName($className, $attempts = 2)
 {
     if ($this->isFailed()) {
         return false;
     }
     $by = WebDriverBy::className($className);
     return $this->expectsToBeSelected($by, $attempts);
 }
コード例 #5
0
 /**
  * Returns an element by the given class name.
  * If nothing is found, an empty array will be returned.
  *
  * @param string $className Class name of expected element.
  * @param int    $attempts  Attempts until the method will fail and return false.
  *
  * @return WebDriverElement[]|array
  */
 public function getArrayByClassName($className, $attempts = 2)
 {
     if ($this->isFailed()) {
         return [];
     }
     $by = WebDriverBy::className($className);
     return $this->getArrayBy($by, $attempts);
 }
コード例 #6
0
 function testNoPoints()
 {
     // ######################################################## LOAD PAGE
     $this->driver->get('http://localhost/app_dev.php/tree/tree/demo');
     $startLink = $this->driver->findElement(WebDriverBy::id('StartTreeLink'));
     $this->assertEquals('Start Tree!', $startLink->getText());
     // ######################################################## Start Tree
     $startLink->click();
     sleep($this->sleepOnActionWithNetwork);
     $nodeTitle = $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElement(WebDriverBy::className('node'))->findElement(WebDriverBy::className('title'));
     $this->assertEquals('START HERE', $nodeTitle->getText());
     // ######################################################## Click Points
     $elements = $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElements(WebDriverBy::className('option'));
     $elements[2]->click();
     $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElement(WebDriverBy::cssSelector('input[type="submit"]'))->click();
     sleep($this->sleepOnActionNoNetwork);
     $nodeTitle = $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElement(WebDriverBy::className('node'))->findElement(WebDriverBy::className('title'));
     $this->assertEquals('END HERE', $nodeTitle->getText());
     $nodeBody = $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElement(WebDriverBy::className('node'))->findElement(WebDriverBy::className('body'));
     $this->assertEquals('NO POINTS', $nodeBody->getText());
 }
コード例 #7
0
ファイル: Parser2GIS.php プロジェクト: avin/selenium-parser
 /**
  * Получить список организаций в категории
  * @param string $cityHref Ссылка на страницу города
  * @param string $rubricName Название рубрики
  * @param string $rubricId Id рубрики
  * @return array
  */
 public function getOrganisationsByRubric($cityHref, $rubricName, $rubricId)
 {
     $rubricName = urlencode($rubricName);
     $this->driver->get("{$cityHref}/search/{$rubricName}/rubricId/{$rubricId}");
     $results = [];
     //Особенность 2гис - элементы рендерят вначале несколько раз, ждем пока не зарендерятся
     sleep(1);
     $organisationList = $this->driver->findElements(WebDriverBy::className('mixedResults'));
     if (isset($organisationList[0])) {
         $organisations = $organisationList[0]->findElements(WebDriverBy::className('miniCard'));
         foreach ($organisations as $organisation) {
             $organisation->click();
             //Ждем появления карточки организации
             $this->driver->wait(5, 500)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::className('firmCard')));
             $firmCard = $this->driver->findElements(WebDriverBy::className('firmCard'));
             if (isset($firmCard[0])) {
                 $results[] = $this->extractDataFromFirmCard($firmCard[0]);
             }
         }
     } else {
         //Если списка организаций нет - проверяем наличие карточки организации
         $firmCard = $this->driver->findElements(WebDriverBy::className('firmCard'));
         if (isset($firmCard[0])) {
             $results[] = $this->extractDataFromFirmCard($firmCard[0]);
         }
     }
     return $results;
 }
コード例 #8
0
ファイル: EditGroupTest.php プロジェクト: amyboyd/overwatch
 private function getUsers()
 {
     return $this->webDriver->findElements(WebDriverBy::className("user"));
 }
コード例 #9
0
    echo $e->getTraceAsString() . PHP_EOL;
    print "[view_car_details:2] Missing car anchor tag." . PHP_EOL;
    $f++;
}
try {
    if (!isset($element)) {
        throw new Exception();
    }
    $element->click();
    $s++;
} catch (Exception $e) {
    print "[view_car_details:3] Cannot click element." . PHP_EOL;
    $f++;
}
try {
    $driver->wait(10, 500)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::className("jumbotron")));
    $s++;
} catch (Exception $e) {
    print "[view_car_details:4] Never loaded page with jumbotron." . PHP_EOL;
    $f++;
}
try {
    $elements = $driver->findElements(WebDriverBy::cssSelector(".jumbotron label"));
    $text = trim($elements[0]->getText());
    if (strpos($text, "Number of Passengers:") == -1) {
        throw new Exception();
    }
    $s++;
} catch (Exception $e) {
    print "[view_car_details:5] Passenger text missing." . PHP_EOL;
    $f++;
コード例 #10
0
 /**
  * Expects to select an elements option by visible text and the elements class name.
  * Retry the process two times or until the attempts argument count
  * is reached when a exception is thrown.
  * Returns false when the web driver was unable to select the expected element.
  *
  * @param string $className   Class name of expected element.
  * @param int    $visibleText VisibleText of option to be selected.
  * @param int    $attempts    Amount of retries until the operation will fail.
  *
  * @return bool True if the elements visibleText is selected, false otherwise.
  */
 public function expectSelectVisibleTextByClassName($className, $visibleText, $attempts = 2)
 {
     if ($this->isFailed()) {
         return false;
     }
     $by = WebDriverBy::className($className);
     return $this->expectSelectVisibleTextByElement($by, $visibleText, $attempts);
 }
コード例 #11
0
 /**
  * Wait until an element is enabled by the given class name or the value of the timeout argument is achieved.
  *
  * @param int $className Class name of expected element.
  * @param int $timeOut   Timeout to wait, when the amount (in seconds) is reached, the test case fails.
  * @param int $interval  Interval of repeating the waiting condition.
  *
  * @return $this Same instance for chained method calls.
  */
 public function waitUntilClassNameIsEnabled($className, $timeOut = 30, $interval = 250)
 {
     if ($this->isFailed()) {
         return $this;
     }
     $by = WebDriverBy::className($className);
     return $this->waitUntilElementIsEnabled($by, $timeOut, $interval);
 }
コード例 #12
0
 /**
  * Получить список доступных городов
  */
 public function getPremiumKey()
 {
     $this->driver->get("http://www.di.fm");
     $email = 'iwantsomeshit' . time() . '@gmail.com';
     $password = '******';
     //Wait register button
     $signUpButton = false;
     while (!$signUpButton) {
         try {
             $signUpButton = $this->driver->findElement(WebDriverBy::className('signup'));
         } catch (WebDriverException $exception) {
             usleep(200);
         }
     }
     $signUpButton->click();
     //Fill form
     $emailField = $this->driver->findElement(WebDriverBy::id('member_email'));
     while (!$emailField->isDisplayed()) {
         usleep(200);
     }
     $emailField->click();
     $this->driver->getKeyboard()->sendKeys($email);
     $this->driver->findElement(WebDriverBy::id('member_password'))->click();
     $this->driver->getKeyboard()->sendKeys($password);
     $this->driver->findElement(WebDriverBy::id('member_password_confirmation'))->click();
     $this->driver->getKeyboard()->sendKeys($password);
     $this->driver->findElement(WebDriverBy::xpath("//button[contains(.,'Create Free Account')]"))->click();
     //Wait user-panel button
     $userButton = false;
     while (!$userButton) {
         try {
             $userButton = $this->driver->findElement(WebDriverBy::className("user-name"));
         } catch (WebDriverException $exception) {
             usleep(200);
         }
     }
     //Activate trial
     $this->driver->get("http://www.di.fm/member/premium/trial/activate");
     //Wait user-panel button
     $userType = false;
     //user-name
     while (!$userType) {
         try {
             $userType = $this->driver->findElement(WebDriverBy::xpath("//span[contains(.,'Premium Member')]"));
         } catch (WebDriverException $exception) {
             usleep(200);
         }
     }
     $this->driver->get("http://www.di.fm/settings");
     //Get key from settings page
     $key = false;
     while (!$key) {
         try {
             $key = $this->driver->findElement(WebDriverBy::className("listen-key"));
         } catch (WebDriverException $exception) {
             usleep(200);
         }
     }
     $keyValue = $key->getText();
     return $keyValue;
 }
コード例 #13
0
 /**
  * Verify an element with a regular expression by class name.
  * Retry the process two times or until the attempts argument count
  * is reached when an exception is thrown.
  *
  * @param string $className Class name of expected element.
  * @param string $regex     Regular expression to compare with.
  * @param string $type      Verification type (elements text, attributes ...).
  * @param int    $attempts  Attempts until the method will fail and return false.
  *
  * @see VerificationTrait::_validateTypeArgument
  * @return bool
  */
 public function verifyRegexByClassName($className, $regex, $type, $attempts = 2)
 {
     if ($this->isFailed()) {
         return false;
     }
     $by = WebDriverBy::className($className);
     return $this->_verifyBy($by, $regex, $type, $attempts, true);
 }
コード例 #14
0
 function testGoBackByClickingReset()
 {
     $user = new User();
     $user->setEmail("*****@*****.**");
     $user->setUsername("test");
     $user->setPassword("ouhosu");
     $this->em->persist($user);
     $tree = new Tree();
     $tree->setTitleAdmin('Tree');
     $tree->setPublicId('tree');
     $tree->setOwner($user);
     $this->em->persist($tree);
     $treeVersion = new TreeVersion();
     $treeVersion->setTree($tree);
     $treeVersion->setPublicId('version');
     $this->em->persist($treeVersion);
     $startNode = new Node();
     $startNode->setTreeVersion($treeVersion);
     $startNode->setTitle("START HERE");
     $startNode->setPublicId('start');
     $this->em->persist($startNode);
     $endNode = new Node();
     $endNode->setTreeVersion($treeVersion);
     $endNode->setTitle("END HERE");
     $endNode->setPublicId('end');
     $this->em->persist($endNode);
     $nodeOption = new NodeOption();
     $nodeOption->setTitle("LETS GO HERE");
     $nodeOption->setTreeVersion($treeVersion);
     $nodeOption->setNode($startNode);
     $nodeOption->setDestinationNode($endNode);
     $nodeOption->setPublicId('option');
     $this->em->persist($nodeOption);
     $treeVersionPublished = new TreeVersionPublished();
     $treeVersionPublished->setTreeVersion($treeVersion);
     $treeVersionPublished->setPublishedBy($user);
     $this->em->flush();
     $tvsn = new TreeVersionStartingNode();
     $tvsn->setNode($startNode);
     $tvsn->setTreeVersion($treeVersion);
     $this->em->persist($tvsn);
     $published = new TreeVersionPublished();
     $published->setTreeVersion($treeVersion);
     $this->em->persist($published);
     $this->em->flush();
     // ######################################################## LOAD PAGE
     $this->driver->get('http://localhost/app_dev.php/tree/tree/demo');
     $startLink = $this->driver->findElement(WebDriverBy::id('StartTreeLink'));
     $this->assertEquals('Start Tree!', $startLink->getText());
     // ######################################################## Start Tree
     $startLink->click();
     sleep($this->sleepOnActionWithNetwork);
     $nodeTitle = $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElement(WebDriverBy::className('node'))->findElement(WebDriverBy::className('title'));
     $this->assertEquals('START HERE', $nodeTitle->getText());
     // ######################################################## LOAD PAGE
     $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElements(WebDriverBy::className('option'))[0]->click();
     $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElement(WebDriverBy::cssSelector('input[type="submit"]'))->click();
     sleep($this->sleepOnActionNoNetwork);
     $nodeTitle = $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElement(WebDriverBy::className('node'))->findElement(WebDriverBy::className('title'));
     $this->assertEquals('END HERE', $nodeTitle->getText());
     // ######################################################## GO BACK
     $this->driver->findElement(WebDriverBy::className('restart'))->findElement(WebDriverBy::tagName('a'))->click();
     sleep($this->sleepOnActionNoNetwork);
     $nodeTitle = $this->driver->findElement(WebDriverBy::id('DemoHere'))->findElement(WebDriverBy::className('node'))->findElement(WebDriverBy::className('title'));
     $this->assertEquals('START HERE', $nodeTitle->getText());
 }
コード例 #15
0
ファイル: example.php プロジェクト: vladislavl-hyuna/crmapp
namespace Facebook\WebDriver;

use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once 'vendor/autoload.php';
// start Firefox with 5 second timeout
$host = 'http://localhost:4444/wd/hub';
// this is the default
$capabilities = DesiredCapabilities::firefox();
$driver = RemoteWebDriver::create($host, $capabilities, 5000);
// navigate to 'http://docs.seleniumhq.org/'
$driver->get('http://docs.seleniumhq.org/');
// adding cookie
$driver->manage()->deleteAllCookies();
$driver->manage()->addCookie(array('name' => 'cookie_name', 'value' => 'cookie_value'));
$cookies = $driver->manage()->getCookies();
print_r($cookies);
// click the link 'About'
$link = $driver->findElement(WebDriverBy::id('menu_about'));
$link->click();
// print the title of the current page
echo "The title is '" . $driver->getTitle() . "'\n";
// print the URI of the current page
echo "The current URI is '" . $driver->getCurrentURL() . "'\n";
// Search 'php' in the search box
$input = $driver->findElement(WebDriverBy::id('q'));
$input->sendKeys('php')->submit();
// wait at most 10 seconds until at least one result is shown
$driver->wait(10)->until(WebDriverExpectedCondition::presenceOfAllElementsLocatedBy(WebDriverBy::className('gsc-result')));
// close the Firefox
$driver->quit();
コード例 #16
0
 /**
  * @Then /^I should see success message$/
  */
 public function iShouldSeeSuccessMessage()
 {
     self::$webDriver->wait(20, 1000)->until(WebDriverExpectedCondition::visibilityOfElementLocated(WebDriverBy::className('success-message')));
 }
コード例 #17
0
ファイル: WebDriver.php プロジェクト: neronmoon/Codeception
 /**
  * @param array $by
  * @return WebDriverBy
  */
 protected function getStrictLocator(array $by)
 {
     $type = key($by);
     $locator = $by[$type];
     switch ($type) {
         case 'id':
             return WebDriverBy::id($locator);
         case 'name':
             return WebDriverBy::name($locator);
         case 'css':
             return WebDriverBy::cssSelector($locator);
         case 'xpath':
             return WebDriverBy::xpath($locator);
         case 'link':
             return WebDriverBy::linkText($locator);
         case 'class':
             return WebDriverBy::className($locator);
         default:
             throw new MalformedLocatorException("{$by} => {$locator}", "Strict locator can be either xpath, css, id, link, class, name: ");
     }
 }
コード例 #18
0
 /**
  * Types values on an element by the given class name.
  *
  * @param string $className Class name of expected element.
  * @param string $value     Value that should be typed on the element.
  * @param bool   $clear     Clear the element before typing when true.
  * @param int    $attempts  Amount of retries until the operation will fail.
  *
  * @return bool
  */
 public function expectTypeClassName($className, $value, $clear = true, $attempts = 2)
 {
     if ($this->isFailed()) {
         return false;
     }
     $by = WebDriverBy::className($className);
     return $this->expectType($by, $value, $clear, $attempts);
 }