Example #1
0
 /**
  * Go to next result page
  */
 public function goToNextResultPage()
 {
     $i = $this->actor;
     $i->executeInSelenium(function (\RemoteWebDriver $webDriver) {
         $webDriver->findElement(\WebDriverBy::linkText('Next'))->click();
     });
 }
 /**
  * Поиск продукта по названию и переход на страницу
  * @param  String $link_text
  * @return Page_Product
  */
 public function click_product_by_link_text($link_text)
 {
     $wait = new WebDriverWait($this->web_driver, 30);
     $wait->until(WebDriverExpectedCondition::visibilityOfElementLocated(WebDriverBy::linkText($link_text)));
     $this->web_driver->findElement(WebDriverBy::linkText($link_text))->click();
     return new Page_Product($this->web_driver);
 }
Example #3
0
 /**
  * Search for an element with the given link text in the provided context.
  *
  * @param string $nodeText
  * @param RemoteWebElement $context
  * @return RemoteWebElement
  */
 protected function ensureTreeNodeIsOpen(string $nodeText, RemoteWebElement $context)
 {
     $I = $this->tester;
     $I->see($nodeText, self::$treeItemSelector);
     /** @var RemoteWebElement $context */
     $context = $I->executeInSelenium(function () use($nodeText, $context) {
         return $context->findElement(\WebDriverBy::linkText($nodeText))->findElement(WebDriverBy::xpath('ancestor::li[@class="x-tree-node"][1]'));
     });
     try {
         $context->findElement(\WebDriverBy::cssSelector('.x-tree-elbow-end-plus'))->click();
     } catch (\Facebook\WebDriver\Exception\NoSuchElementException $e) {
         // element not found so it may be already opened...
     }
     return $context;
 }
 public function testLogInAndOut()
 {
     $this->driver->get('http://localhost:80/addons/boards.php');
     $button = $this->driver->findElement(WebDriverBy::id("navcontent"))->findElement(WebDriverBy::linkText("Log In"));
     $button->click();
     $this->assertContains("login.php", $this->driver->getCurrentURL());
     //$element1 = $this->driver->getActiveElement();
     $element1 = $this->driver->findElement(WebDriverBy::name("username"));
     $this->assertEquals("input", $element1->getTagName());
     //$this->assertEquals("username", $element1->getAttribute("name"));
     $element1->sendKeys("4833");
     //$element1->sendKeys(KEYS::TAB);
     //$element2 = $this->driver->getActiveElement();
     $element2 = $this->driver->findElement(WebDriverBy::name("password"));
     $this->assertEquals("input", $element1->getTagName());
     //$this->assertEquals("password", $element1->getAttribute("name"));
     $element2->sendKeys("asdf");
     $title = $this->driver->getTitle();
     $element2->submit();
     $this->driver->wait(5, 250)->until(WebDriverExpectedCondition::not(WebDriverExpectedCondition::titleIs($title)));
     $this->assertContains("boards.php", $this->driver->getCurrentURL());
 }
 /**
  * @param $start_time
  *  The timestamp on the user ID we are modifying the program for
  * @param $time_change
  *  $time parameter passed to strtotime
  */
 public function adminChangeProgramVUD($start_time, $time_change)
 {
     $this->webDriver->get($this->url . '/admin/structure/entity-type/checklist/accredited');
     Automation::grabElementByCssSelector($this->webDriver, '.pager-last > a:nth-child(1)')->click();
     // Page to last page
     // And then all of this to wait for the list to refresh...
     $this->webDriver->wait(3, 500)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::cssSelector('.pager-first')));
     $link = $this->webDriver->findElement(WebDriverBy::linkText("Checklist Accredited | Webdriver Program {$start_time}"));
     $link->click();
     $edit_url = $this->webDriver->getCurrentURL() . '/edit';
     $this->webDriver->get($edit_url);
     $vud_box = Automation::grabElementByCssSelector($this->webDriver, '#edit-field-accreditation-valid-until-und-0-value-date');
     $vud = $vud_box->getAttribute('value');
     $vud_date = strtotime($vud);
     $minus1year = strtotime($time_change, $vud_date);
     $minus1year_text = date('M d Y', $minus1year);
     $vud_box->clear();
     $vud_box->sendKeys($minus1year_text);
     $submit = Automation::grabElementByCssSelector($this->webDriver, '#edit-submit');
     $submit->click();
 }
 public function goToForm($link_text)
 {
     $this->webDriver->get($this->url);
     // Go Home first
     $link = $this->webDriver->findElement(WebDriverBy::linkText($link_text));
     $link->click();
 }
 public function tearDown()
 {
     self::$webDriver->findElement(WebDriverBy::linkText('Abmelden'))->click();
     self::$webDriver->findElement(WebDriverBy::linkText('Bei ILIAS anmelden'))->click();
 }
Example #8
0
 protected function getWebDriverLocator(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 TestRuntime("Locator type '{$by}' is not defined. Use either: xpath, css, id, link, class, name");
     }
 }
 /**
  * Find a link by its text
  * @param $text
  * @return mixed
  * @throws NoSuchElementException
  */
 public function findLinkByText($text)
 {
     return $this->driver->findElement(WebDriverBy::linkText($text));
 }
Example #10
0
 /**
  * @When /^I press pricing$/
  */
 public function iPressPricing()
 {
     $element = $this->getSession()->findElement(WebDriverBy::linkText("pricing"))->click();
 }
 public function acessarAdministracao($driver)
 {
     $this->driver->findElement(WebDriverBy::linkText("Gerenciar módulos"))->click();
     return $this->driver;
 }
 /**
  * Deletes the first booking
  */
 public function deleteFirstBooking()
 {
     $this->webDriver->findElement(WebDriverBy::linkText('Stornieren'))->click();
     $this->webDriver->findElement(WebDriverBy::name('cmd[cancelBooking]'))->click();
 }
 /**
  * Closes web browser.
  */
 public static function tearDownAfterClass()
 {
     self::$helper->login(self::$login_root, self::$pass_root);
     self::$helper->toRSS();
     self::$helper->deleteAllRooms();
     self::$webDriver->findElement(WebDriverBy::linkText('Privilegien'))->click();
     self::$webDriver->findElement(WebDriverBy::partialLinkText(self::$classname_1))->click();
     self::$webDriver->findElement(WebDriverBy::partialLinkText('Klasse löschen'))->click();
     self::$webDriver->findElement(WebDriverBy::name('cmd[deleteClass]'))->click();
     self::$webDriver->findElement(WebDriverBy::linkText('Privilegien'))->click();
     self::$webDriver->findElement(WebDriverBy::partialLinkText(self::$classname_2))->click();
     self::$webDriver->findElement(WebDriverBy::partialLinkText('Klasse löschen'))->click();
     self::$webDriver->findElement(WebDriverBy::name('cmd[deleteClass]'))->click();
     self::$helper->deleteUser();
     self::$helper->toRSS();
     self::$helper->deleteUser();
     self::$helper->logout();
     self::$webDriver->quit();
 }
 /**
  * get ILIAS id by name of ILIAS group
  * @param type $name
  */
 private function getGrpIdByName($name)
 {
     $pool = self::$webDriver->findElement(WebDriverBy::linkText($name));
     $pool2 = $pool->getAttribute("href");
     $pos = strpos($pool2, "id=");
     return substr($pool2, $pos + 3, -75);
 }
Example #15
0
 /**
  * @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: ");
     }
 }
Example #16
0
 /**
  * Wait for anchor element whose visible text matches the search value.
  *
  * @param string $linkText
  * @param bool $mustBeVisible Pass true to check if element is also visible. False only checks presence in DOM.
  * @return \RemoteWebElement
  */
 public function waitForLinkText($linkText, $mustBeVisible = false)
 {
     return $this->waitForElement(\WebDriverBy::linkText($linkText), $mustBeVisible);
 }
Example #17
0
function viewRequest($driver, $name)
{
    goHome($driver);
    $request = $driver->findElement(WebDriverBy::linkText('Requests'));
    $request->click();
    $driver->wait(65);
    //$clickRequest= $driver->findElement(WebDriverBy::cssSelector('a[name="'.$name.'"]'));
    goHome($driver);
}
Example #18
0
 public static function clickRegisterLink($webDriver)
 {
     $register_link = $webDriver->findElement(WebDriverBy::linkText('Create new account'));
     $register_link->click();
 }
 /**
  * Closes web browser.
  */
 public static function tearDownAfterClass()
 {
     self::$helper->login(self::$login_user, self::$login_pass);
     self::$helper->toRSS();
     self::$helper->deleteAllRooms();
     self::$webDriver->findElement(WebDriverBy::linkText('Privilegien'))->click();
     self::$webDriver->findElement(WebDriverBy::partialLinkText(self::$classname))->click();
     self::$webDriver->findElement(WebDriverBy::partialLinkText('Klasse löschen'))->click();
     self::$webDriver->findElement(WebDriverBy::name('cmd[deleteClass]'))->click();
     self::$helper->deleteOneAttributeForBooking();
     self::$helper->deleteUser();
     self::$helper->toRSS();
     self::$helper->deleteUser();
     self::$helper->logout();
     self::$webDriver->quit();
 }
Example #20
0
 public function testNewReceiveInventory()
 {
     $this->driver->get($this->getTestPath('index.html'));
     sleep(5);
     $this->driver->findElement(WebDriverBy::name('Username'))->sendKeys('lnguyen');
     $this->driver->findElement(WebDriverBy::name('Password'))->sendKeys('password');
     $this->driver->findElement(WebDriverBy::linkText('Login'))->click();
     sleep(5);
     $this->driver->findElement(WebDriverBy::linkText('Receiving'))->click();
     for ($i = 0; $i < 10; $i++) {
         $this->driver->findElement(WebDriverBy::xpath("//span[text()='Receive New']"))->click();
         sleep(5);
         $this->driver->findElement(WebDriverBy::name('Fromlocid'))->click();
         $this->driver->findElement(WebDriverBy::xpath("//li[text()='SJRECVING']"))->click();
         $this->driver->findElement(WebDriverBy::name('Recvtypeid'))->click();
         $this->driver->findElement(WebDriverBy::xpath("//li[text()='NEW INVENTORY']"))->click();
         $input = array("CCINTEG", "SMOOTHIE", "NASUNI", "CYPHORT", "LOADDYNAMIX", "PROOFPOINT", "NSCALED", "OPENWAVE", "QUORUM", "NEVRO", "VAULTIZE", "MICROSOFT", "ARISTOCRAT", "CYAN", "BIOTEAM", "VALVE", "UNTANGLE", "BSWITCH", "EGNYTE", "VERASONICS", "VPICORP", "ZEACOM", "NORSE", "TUMBLW", "AXWAY", "ICANN", "NORSE-FEDERAL", "FORTINET", "STRONGVIEW", "NOCTION", "DISCOVERY", "NOMINUM", "ECLSLA");
         for ($k = 0; $k < 100; $k++) {
             $this->driver->findElement(WebDriverBy::name('Partnerid'))->click();
             if ($k % 2 == 0) {
                 $this->driver->findElement(WebDriverBy::xpath("//li[text()='QUORUM']"))->click();
             } elseif ($k > 50) {
                 $this->driver->findElement(WebDriverBy::xpath("//li[text()='CCINTEG']"))->click();
             } else {
                 $this->driver->findElement(WebDriverBy::xpath("//li[text()='NASUNI']"))->click();
             }
             sleep(2);
         }
         $this->driver->findElement(WebDriverBy::name('Tolocid'))->click();
         $this->driver->findElement(WebDriverBy::xpath("//div[text()='[QUOR-RAWMAT] QUOR-RAWMAT']"))->click();
         $this->driver->findElement(WebDriverBy::name('Refpo'))->sendKeys('Refpo');
         $this->driver->findElement(WebDriverBy::name('Custpo'))->sendKeys('Custpo');
         $this->driver->findElement(WebDriverBy::name('Comment'))->sendKeys('Comment by Luu');
         $this->driver->findElement(WebDriverBy::xpath("//span[text()='Enter Items']"))->click();
         sleep(1);
         $this->driver->findElement(WebDriverBy::name('addOrderDetail'))->sendKeys(WebDriverKeys::ENTER);
         $this->driver->findElement(WebDriverBy::xpath("//li[text()='ONQ-280-16']"))->click();
         for ($j = 0; $j < 3; $j++) {
             $arr = str_split('ABCDEFGHIJKLMNOP');
             // get all the characters into an array
             shuffle($arr);
             // randomize the array
             $arr2 = array_slice($arr, 0, 6);
             // get the first six (random) characters out
             $str = implode('', $arr2);
             // smush them back into a string
             $this->driver->findElement(WebDriverBy::name('Ssn'))->sendKeys($str);
             $this->driver->findElement(WebDriverBy::name('Ssn'))->sendKeys(WebDriverKeys::ENTER);
             sleep(2);
         }
         sleep(2);
         $this->driver->findElement(WebDriverBy::xpath("//span[text()='Complete']"))->click();
         $this->driver->findElement(WebDriverBy::xpath("//span[text()='Save']"))->click();
         sleep(2);
         $this->driver->findElement(WebDriverBy::xpath("//span[text()='OK']"))->click();
         $this->driver->findElement(WebDriverBy::xpath("//span[text()='Post Batch']"))->click();
         $this->driver->findElement(WebDriverBy::xpath("//span[text()='OK']"))->click();
         sleep(10);
         $this->driver->findElement(WebDriverBy::xpath("//span[text()='Close']"))->click();
         sleep(2);
     }
 }
Example #21
0
 public function testGetByLinkText()
 {
     $this->driver->get($this->getTestPath('index.html'));
     self::assertEquals('Click here', $this->driver->findElement(WebDriverBy::linkText('Click here'))->getText());
 }
Example #22
0
 /**
  * Tests that, upload function in document_repository module
  *
  * @return void
  */
 function testDocumentRepositoryUploadFileEditDeleteComment()
 {
     $this->markTestSkipped("This method isn't working properly on travis.");
     $this->safeGet($this->url . "/document_repository/");
     $this->safeFindElement(WebDriverBy::Xpath("//*[@id='TESTTESTTESTTESTa']/td/span"))->click();
     $this->safeFindElement(WebDriverBy::Id("9999999"))->click();
     // modify comment,search it and check it
     $select = $this->safeFindElement(WebDriverBy::Id("categoryEdit"));
     $element = new WebDriverSelect($select);
     $element->selectByVisibleText("TESTTESTTESTTEST");
     $site = $this->safeFindElement(WebDriverBy::Id("siteEdit"));
     $elementSite = new WebDriverSelect($site);
     $elementSite->selectByVisibleText("Any");
     $this->safeFindElement(WebDriverBy::Id("commentsEdit"))->sendKeys("This is a test comment!");
     $this->safeFindElement(WebDriverBy::Id("postEdit"))->click();
     sleep(5);
     $this->safeFindElement(WebDriverBy::Name("File_name"))->sendKeys("README.md");
     $this->safeFindElement(WebDriverBy::Name("filter"))->click();
     $text = $this->safeFindElement(WebDriverBy::cssSelector("#dir-tree > tr"), 3000)->getText();
     $this->assertContains("This is a test comment!", $text);
     // delete upload file
     $this->safeFindElement(WebDriverBy::linkText("Delete"), 3000)->click();
     $this->safeFindElement(WebDriverBy::Id("postDelete"))->click();
     $this->safeFindElement(WebDriverBy::Name("File_name"))->sendKeys("README.md");
     $this->safeFindElement(WebDriverBy::Name("filter"))->click();
     sleep(5);
     $text = $this->safeFindElement(WebDriverBy::cssSelector("tbody"), 3000)->getText();
     $this->assertEquals('', $text);
 }
 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');
 }
 /**
  * Test general search controls
  * @test
  */
 public function testSearchUsage()
 {
     self::$helper->createRoomAttribute("Beamer");
     self::$helper->createRoom('123', 1, 20, "TEST", " - Keine Zuordnung - ", array('Beamer' => 2));
     #1 Use "New search" Button
     self::$helper->searchForRoomByAll("123", 5, date("d"), self::$helper->getCurrentMonth(), date("Y") + 1, date("H"), date("i"), "23", "55", array("Beamer" => 1));
     self::$webDriver->findElement(WebDriverBy::linkText(' Neue Suche '))->click();
     try {
         self::$webDriver->findElement(WebDriverBy::name('cmd[applySearch]'));
     } catch (Exception $ex) {
         $this->fail("#1 Back link does not link back" . $ex);
     }
     #2 Test if search remains stable after using link
     $this->assertEquals("123", self::$webDriver->findElement(WebDriverBy::id('room_name'))->getAttribute("value"));
     $this->assertEquals("5", self::$webDriver->findElement(WebDriverBy::id('room_seats'))->getAttribute("value"));
     $this->assertEquals("1", self::$webDriver->findElement(WebDriverBy::id('attribute_Beamer_amount'))->getAttribute("value"));
     $options = self::$webDriver->findElements(WebDriverBy::tagName('option'));
     $counter = 0;
     foreach ($options as $option) {
         $selected = $option->getAttribute('selected');
         if (!empty($selected)) {
             switch ($counter) {
                 case 0:
                     $this->assertEquals(date("d"), $option->getText());
                     break;
                 case 1:
                     $this->assertEquals(self::$helper->getCurrentMonth(), $option->getText());
                     break;
                 case 2:
                     $this->assertEquals(date("Y") + 1, $option->getText());
                     break;
                 case 3:
                     $this->assertEquals(date("H"), $option->getText());
                     break;
                 case 4:
                     $this->assertEquals(date("i"), $option->getText());
                     break;
                 case 5:
                     $this->assertEquals("23", $option->getText());
                     break;
                 case 6:
                     $this->assertEquals("55", $option->getText());
                     break;
             }
             $counter++;
         }
     }
     #3 Reset the search
     self::$webDriver->findElement(WebDriverBy::name('cmd[resetSearch]'))->click();
     $this->assertEquals("", self::$webDriver->findElement(WebDriverBy::id('room_name'))->getAttribute("value"));
     $this->assertEquals("", self::$webDriver->findElement(WebDriverBy::id('room_seats'))->getAttribute("value"));
     $this->assertEquals("", self::$webDriver->findElement(WebDriverBy::id('attribute_Beamer_amount'))->getAttribute("value"));
     $options = self::$webDriver->findElements(WebDriverBy::tagName('option'));
     $counter = 0;
     foreach ($options as $option) {
         $selected = $option->getAttribute('selected');
         if (!empty($selected)) {
             switch ($counter) {
                 case 0:
                     $this->assertEquals(date("d"), $option->getText());
                     break;
                 case 1:
                     $this->assertEquals(self::$helper->getCurrentMonth(), $option->getText());
                     break;
                 case 2:
                     $this->assertEquals(date("Y"), $option->getText());
                     break;
                 case 3:
                     $this->assertEquals(date("H") + 1, $option->getText());
                     break;
                 case 4:
                     $this->assertEquals(0, $option->getText());
                     break;
                 case 5:
                     $this->assertEquals(date("H") + 2, $option->getText());
                     break;
                 case 6:
                     $this->assertEquals(0, $option->getText());
                     break;
             }
             $counter++;
         }
     }
     self::$helper->deleteAllRooms();
 }