/** * 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); }
/** * 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(); }
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)); }
/** * @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); }
/** * @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: "); } }
/** * 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); }
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); }
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(); }
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); } }
public function testGetByLinkText() { $this->driver->get($this->getTestPath('index.html')); self::assertEquals('Click here', $this->driver->findElement(WebDriverBy::linkText('Click here'))->getText()); }
/** * 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(); }