/** @test */ public function sampleTest() { $page = $this->driver->get('http://slovicka.my'); $this->assertContains('Slovicka', $page->getTitle()); $username = $this->driver->findElement(WebDriverBy::name('_username')); $username->sendKeys('*****@*****.**'); }
protected function set_api_key($api_key) { self::$driver->get(wordpress('/wp-admin/options-media.php')); self::$driver->findElement(WebDriverBy::name('tinypng_api_key'))->clear()->sendKeys($api_key); self::$driver->findElement(WebDriverBy::tagName('form'))->submit(); return self::$driver->findElement(WebDriverBy::name('tinypng_api_key')); }
/** @When /^I search for "([^"]*)"$/ */ public function iSearchFor($searchText) { $element = $this->webDriver->findElement(WebDriverBy::name("q")); if ($element) { $element->sendKeys($searchText); $element->submit(); } }
/** * @param RemoteWebDriver $web_driver */ function __construct(RemoteWebDriver $web_driver) { $this->web_driver = $web_driver; // Дожидаемся загрузки первого елемента $wait = new WebDriverWait($this->web_driver, 30); $wait->until(WebDriverExpectedCondition::visibilityOfElementLocated(WebDriverBy::id('MainContent_Email'))); $this->email = $this->web_driver->findElement(WebDriverBy::id('MainContent_Email')); $this->password = $this->web_driver->findElement(WebDriverBy::id('MainContent_Password')); $this->remember = $this->web_driver->findElement(WebDriverBy::id('MainContent_RememberMe')); $this->submit = $this->web_driver->findElement(WebDriverBy::name('ctl00$MainContent$ctl05')); }
public function testGoogle() { $web_driver = Util::createDriver(); $web_driver->get("http://www.google.com"); $element = $web_driver->findElement(WebDriverBy::name("q")); if ($element) { $element->sendKeys("Browserstack"); $element->submit(); } $web_driver->quit(); }
function testLogCreatesNewFileOnFirstMessage() { echo 'This is a test with simple test'; $web_driver = RemoteWebDriver::create("http://<username>:<access_key>@hub.browserstack.com/wd/hub", array("platform" => "WINDOWS")); $web_driver->get("http://www.google.com/ncr"); $this->assertEquals("Google", $web_driver->getTitle()); $element = $web_driver->findElement(WebDriverBy::name("q")); if ($element) { $element->sendKeys("Browserstack"); $element->submit(); //$this->assertEquals(0, count($stack)); } $web_driver->quit(); }
public function testGoogle() { $url = "http://" . self::$user_id . ":" . self::$security_key . "@hub.browserstack.com/wd/hub"; $caps = array("browser" => "IE", "browser_version" => "9.0", "os" => "Windows", "os_version" => "7", "browserstack.debug" => "true"); $web_driver = RemoteWebDriver::create($url, $caps); $web_driver->get("http://www.google.com"); print $web_driver->getTitle(); $element = $web_driver->findElement(WebDriverBy::name("q")); if ($element) { $element->sendKeys("Browserstack"); $element->submit(); } $web_driver->quit(); }
public function setUp() { $capabilities = array(\WebDriverCapabilityType::BROWSER_NAME => 'firefox'); $this->webDriver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities); $this->app = self::createApplication(); //log user in $this->webDriver->get($this->baseUrl); $usernameField = $this->webDriver->findElement(WebDriverBy::name("username")); $usernameField->sendKeys("superuser"); $passwordField = $this->webDriver->findElement(WebDriverBy::name("password")); $passwordField->sendKeys("mala"); $loginBtn = $this->webDriver->findElement(WebDriverBy::id("login-btn")); $loginBtn->click(); $this->webDriver->manage()->timeouts()->implicitlyWait(1000); }
protected function clearData() { $companyNameTextField = $this->webDriver->findElement(WebDriverBy::name("company_name")); $companyNameTextField->clear(); $companyDescTextField = $this->webDriver->findElement(WebDriverBy::name("company_description")); $companyDescTextField->clear(); $companyAddressTextField = $this->webDriver->findElement(WebDriverBy::name("company_address")); $companyAddressTextField->clear(); $companyTelephoneTextField = $this->webDriver->findElement(WebDriverBy::name("company_telephone")); $companyTelephoneTextField->clear(); $companyTinNoTextField = $this->webDriver->findElement(WebDriverBy::name("company_tin_number")); $companyTinNoTextField->clear(); $companySSNITNoTextField = $this->webDriver->findElement(WebDriverBy::name("company_ssnit_number")); $companySSNITNoTextField->clear(); $companyEmailTextField = $this->webDriver->findElement(WebDriverBy::name("company_email")); $companyEmailTextField->clear(); $companyWebsiteTextField = $this->webDriver->findElement(WebDriverBy::name("company_website")); $companyWebsiteTextField->clear(); }
/** * Tests the filter panel itself in room filter * @test */ public function testFilterPanel() { self::$webDriver->findElement(WebDriverBy::linkText('Räume'))->click(); #1: Hide Room Filter self::$webDriver->findElement(WebDriverBy::linkText('Filter ausblenden'))->click(); $this->assertEquals(false, self::$webDriver->findElement(WebDriverBy::name('cmd[applyRoomFilter]'))->isDisplayed(), '#1 Hiding the RoomFilter does not hide it'); #2: Show Room Filtere self::$webDriver->findElement(WebDriverBy::linkText('Filter anzeigen'))->click(); $this->assertEquals(true, self::$webDriver->findElement(WebDriverBy::name('cmd[applyRoomFilter]'))->isDisplayed(), '#2 Showing the RoomFilter does not show it'); #3 Apply and hide filter self::$webDriver->findElement(WebDriverBy::id('room_name'))->sendKeys('123'); self::$webDriver->findElement(WebDriverBy::name('cmd[applyRoomFilter]'))->click(); self::$webDriver->findElement(WebDriverBy::linkText('Filter ausblenden'))->click(); self::$webDriver->findElement(WebDriverBy::linkText('Filter anzeigen'))->click(); $this->assertEquals('123', self::$webDriver->findElement(WebDriverBy::name('room_name'))->getAttribute('value'), '#3 Hiding and showing the RoomFilter resets it'); #4 Reset filter self::$webDriver->findElement(WebDriverBy::name('cmd[resetRoomFilter]'))->click(); $this->assertEquals(true, empty(self::$webDriver->findElement(WebDriverBy::name('room_name'))->getAttribute('value')), '#4 Filter reseting does not work'); }
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()); }
public function testCalendarEntryEditTest() { //edit date $row = self::$webDriver->findElement(WebDriverBy::xpath("//tr[contains(text(), " . "CalendarTestBooking" . ")]/td[8]")); $row->findElement(WebDriverBy::linkText('Bearbeiten'))->click(); self::$webDriver->findElement(WebDriverBy::id('from[date]_d'))->sendKeys(date('d') + 1); self::$webDriver->findElement(WebDriverBy::id('from[date]_m'))->sendKeys(date('m')); self::$webDriver->findElement(WebDriverBy::id('from[date]_y'))->sendKeys(date('Y')); self::$webDriver->findElement(WebDriverBy::id('from[time]_h'))->sendKeys("14"); self::$webDriver->findElement(WebDriverBy::id('from[time]_m'))->sendKeys("00"); self::$webDriver->findElement(WebDriverBy::id('to[date]_d'))->sendKeys(date('d') + 1); self::$webDriver->findElement(WebDriverBy::id('to[date]_m'))->sendKeys(date('m')); self::$webDriver->findElement(WebDriverBy::id('to[date]_y'))->sendKeys(date('Y')); self::$webDriver->findElement(WebDriverBy::id('to[time]_h'))->sendKeys("15"); self::$webDriver->findElement(WebDriverBy::id('to[time]_m'))->sendKeys("10"); self::$webDriver->findElement(WebDriverBy::name('cmd[saveEditBooking]'))->click(); $this->assertContains("Buchung erfolgreich bearbeitet", self::$helper->getSuccMessage()); self::$webDriver->findElement(WebDriverBy::linkText('Zurück zu den Buchungen'))->click(); // check calendar for booking self::$webDriver->findElement(WebDriverBy::linkText(self::$helper->getCurrentMonth() . ' ' . date('Y')))->click(); $this->assertContains("14:00 CalendarTestBooking", self::$webDriver->findElement(webDriverBy::cssSelector("div.ilTabContentOuter.ilTabsTableCell"))->getText()); // go back to bookings self::$webDriver->findElement(WebDriverBy::linkText('Termine'))->click(); }
/** * Test valid booking: participants * @test */ public function testValidBookingWithParticipants() { self::$webDriver->findElement(WebDriverBy::linktext('Buchen'))->click(); self::$helper->fillBookingForm("Testbuchung", "12", "2", "2016", "10", "00", "12", "2", "2016", "11", "00", true, "", true, array("aaa", "bbb")); self::$webDriver->findElement(WebDriverBy::name('cmd[book]'))->click(); $this->assertEquals("Buchung hinzugefügt", self::$helper->getSuccMessage()); $page = self::$webDriver->findElement(WebDriverBy::tagName('body'))->getText(); $this->assertContains("Alfred", $page); $this->assertContains("Bernd", $page); self::$helper->deleteFirstBooking(); }
/** * 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(); }
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"); } }
protected function clearData() { $allowanceNameTextField = $this->webDriver->findElement(WebDriverBy::name("role_name")); $allowanceNameTextField->clear(); }
/** * Precondition: No priviledge classes * Postcondition: No priviledge classes * @test */ public function createAndDeleteClassesTest() { //#1 Test Cancel of a creation self::$webDriver->findElement(WebDriverBy::linkText('Privilegien'))->click(); self::$webDriver->findElement(WebDriverBy::linkText(' Neue Klasse anlegen '))->click(); self::$webDriver->findElement(WebDriverBy::name('cmd[showPrivileges]'))->click(); try { self::$webDriver->findElement(WebDriverBy::linkText(' Neue Klasse anlegen ')); } catch (Exception $ex) { $this->fail("#1: Cancel of a new privilege class does not link to pivilege class overview: " . $ex); } //#2 Create a Privilege Class self::$helper->createPrivilegClass("Test_A", "Test_A", "User", 1); try { self::$webDriver->findElement(WebDriverBy::linkText("Test_A ⇒ User")); } catch (Exception $ex) { $this->fail("#2.1: Creation of a new privilege class with ILIAS-role does not work: " . $ex); } self::$helper->createPrivilegClass("Test_C", "Test_C", "Keine", 5); try { self::$webDriver->findElement(WebDriverBy::linkText("Test_C")); } catch (Exception $ex) { $this->fail("#2.2: Creation of a new privilege class without ILIAS-role does not work: " . $ex); } self::$helper->deletePrivilegClass("Test_C"); //#3 Create an existing privilege class self::$helper->createPrivilegClass("Test_A", "Test_A", "User", 1); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); } catch (Exception $ex) { $this->fail("#3: Creation of an existing privilege class with ILIAS-role works: " . $ex); } //#4 Create a privilege class that gets user-rolls from the same role as another already existing class. self::$webDriver->findElement(WebDriverBy::name('cmd[showPrivileges]'))->click(); self::$helper->createPrivilegClass("Test_B", "Test_B", "User", 0); try { self::$webDriver->findElement(WebDriverBy::linkText("Test_B ⇒ User")); } catch (Exception $ex) { $this->fail("#4: Creation of a new privilege class with same ILIAS-role as another does not work: " . $ex); } self::$helper->deletePrivilegClass("Test_B ⇒ User"); //#5 Create an empty privileges class self::$helper->createPrivilegClass("", "Test_C", "Guest", 2); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); } catch (Exception $ex) { $this->fail("#5: Creation of a no-name privilege class seems to be allowed: " . $ex); } self::$webDriver->findElement(WebDriverBy::name("cmd[showPrivileges]"))->click(); //#6 Delete Test_A class, none should be left self::$webDriver->findElement(WebDriverBy::linkText("Test_A ⇒ User"))->click(); self::$webDriver->findElement(WebDriverBy::linkText(' Klasse löschen '))->click(); self::$webDriver->findElement(WebDriverBy::name('cmd[renderEditClassForm]'))->click(); try { self::$webDriver->findElement(WebDriverBy::linkText(' Klasse löschen '))->click(); } catch (Exception $ex) { $this->fail("#6.1: Click cancel in the delete confirmation does not redirect to edit of the class " . $ex); } self::$webDriver->findElement(WebDriverBy::linkText('Zurück zu den Klasseneigenschaften'))->click(); try { self::$webDriver->findElement(WebDriverBy::linkText(' Klasse löschen '))->click(); } catch (Exception $ex) { $this->fail("#6.2: Click backtab in the delete confirmation does not redirect to edit of the class " . $ex); } self::$webDriver->findElement(WebDriverBy::name('cmd[deleteClass]'))->click(); try { self::$webDriver->findElement(WebDriverBy::xpath("//td[text()='Keine Klassen vorhanden']"))->click(); } catch (Exception $ex) { $this->fail("#6.3: Deleting a privileges class does not delete it " . $ex); } }
public function testFailWebDriverByLocator() { $this->shouldFail(); $this->module->amOnPage('/form/checkbox'); $this->module->checkOption(WebDriverBy::name('age')); }
/** * Submits a form located on page. * Specify the form by it's css or xpath selector. * Fill the form fields values as array. Hidden fields can't be accessed. * * This command itself triggers the request to form's action. * * Examples: * * ``` php * <?php * $I->submitForm('#login', array('login' => 'davert', 'password' => '123456')); * * ``` * * For sample Sign Up form: * * ``` html * <form action="/sign_up"> * Login: <input type="text" name="user[login]" /><br/> * Password: <input type="password" name="user[password]" /><br/> * Do you agree to out terms? <input type="checkbox" name="user[agree]" /><br/> * Select pricing plan <select name="plan"><option value="1">Free</option><option value="2" selected="selected">Paid</option></select> * <input type="submit" value="Submit" /> * </form> * ``` * You can write this: * * ``` php * <?php * $I->submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true))); * * ``` * * @param $selector * @param $params * @throws \Codeception\Exception\ElementNotFound */ public function submitForm($selector, $params) { $form = $this->match($this->webDriver, $selector); if (empty($form)) { throw new ElementNotFound($selector, "Form via CSS or XPath"); } $form = reset($form); /** @var $form \WebDriverElement **/ foreach ($params as $param => $value) { $els = $form->findElements(\WebDriverBy::name($param)); $el = reset($els); if ($el->getTagName() == 'textarea') { $this->fillField($el, $value); } if ($el->getTagName() == 'select') { $this->selectOption($el, $value); } if ($el->getTagName() == 'input') { $type = $el->getAttribute('type'); if ($type == 'text') { $this->fillField($el, $value); } if ($type == 'radio' or $type == 'checkbox') { foreach ($els as $radio) { if ($radio->getAttribute('value') == $value) { $this->checkOption($radio); } } } } } $this->debugSection('Uri', $form->getAttribute('action') ? $form->getAttribute('action') : $this->_getCurrentUri()); $this->debugSection('Method', $form->getAttribute('method') ? $form->getAttribute('method') : 'GET'); $this->debugSection('Parameters', json_encode($params)); $form->submit(); $this->debugSection('Page', $this->_getCurrentUri()); }
/** * Wait for element whose NAME attribute matches the search value. * * @param string $name * @param bool $mustBeVisible Pass true to check if element is also visible. False only checks presence in DOM. * @return \RemoteWebElement */ public function waitForName($name, $mustBeVisible = false) { return $this->waitForElement(\WebDriverBy::name($name), $mustBeVisible); }
public function testApiKeyInputPresence() { $elements = self::$driver->findElements(WebDriverBy::name('tinypng_api_key')); $this->assertEquals(1, count($elements)); }
public function testEditComment() { //edit comment $row = self::$webDriver->findElement(WebDriverBy::xpath("//tr[contains(text(), " . "TestEditBooking" . ")]/td[8]")); $row->findElement(WebDriverBy::linkText('Bearbeiten'))->click(); self::$webDriver->findElement(WebDriverBy::id('comment'))->sendKeys("aComment"); self::$webDriver->findElement(WebDriverBy::name('cmd[saveEditBooking]'))->click(); $this->assertContains("Buchung erfolgreich bearbeitet", self::$helper->getSuccMessage()); self::$webDriver->findElement(WebDriverBy::linkText('Zurück zu den Buchungen'))->click(); }
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); } }
/** * Tests the effects of changing a floorplan which is assigend to a room * @test */ public function testAssignmentEffectsOfFloorplans() { self::$webDriver->findElement(WebDriverBy::linkText('Gebäudeplan'))->click(); self::$helper->createFloorPlan('Test_A', self::$test_file_absolut_path . 'sucess.jpg', 'Test'); //#1 Use a new floorplan by creating a room with it self::$helper->createRoom('123', '1', '20', "TEST", "Test_A", array()); self::$webDriver->findElement(WebDriverBy::linkText(' Zurück zu allen Räumen '))->click(); self::$webDriver->findElement(WebDriverBy::linkText('123'))->click(); $text = self::$webDriver->findElement(WebDriverBy::xpath("//option[text()='Test_A']"))->getAttribute('selected'); $this->assertEquals(false, empty($text), '#1 Using a new floorplan on a room has failed!'); //#2 Change a floorplan which is assigend to a room self::$webDriver->findElement(WebDriverBy::linkText('Gebäudeplan'))->click(); $menu = self::$webDriver->findElement(WebDriverBy::xpath("//div[@id='il_center_col']/div[4]/table/tbody/tr[2]/td[4]")); $menu->findElement(WebDriverBy::linkText('Aktionen'))->click(); $menu->findElement(WebDriverBy::linkText('Bearbeiten'))->click(); self::$webDriver->findElement(WebDriverBy::id('title'))->clear(); self::$webDriver->findElement(WebDriverBy::id('title'))->sendKeys('Test_B'); self::$webDriver->findElement(WebDriverBy::id('file_mode_replace'))->click(); self::$webDriver->findElement(WebDriverBy::id('upload_file'))->sendKeys(self::$test_file_absolut_path . 'sucess.jpg'); self::$webDriver->findElement(WebDriverBy::name('cmd[update]'))->click(); self::$webDriver->findElement(WebDriverBy::linkText('Räume'))->click(); self::$webDriver->findElement(WebDriverBy::linkText('123'))->click(); $text = self::$webDriver->findElement(WebDriverBy::xpath("//option[text()='Test_B']"))->getAttribute('selected'); $this->assertEquals(false, empty($text), '#2 Changing an assigend floorplan has failed!'); //#3 Delete an assigned floorplan self::$webDriver->findElement(WebDriverBy::linkText('Gebäudeplan'))->click(); self::$helper->deleteAllFloorPlans(); self::$webDriver->findElement(WebDriverBy::linkText('Räume'))->click(); self::$webDriver->findElement(WebDriverBy::linkText('123'))->click(); $text = self::$webDriver->findElement(WebDriverBy::xpath("//option[text()=' - Keine Zuordnung - ']"))->getAttribute('selected'); $this->assertEquals(false, empty($text), '#3 Deleting an assigend floorplan has failed!'); self::$helper->deleteAllRooms(); }
public function testGetByName() { $this->driver->get($this->getTestPath('index.html')); self::assertEquals('Test Value', $this->driver->findElement(WebDriverBy::name('test_name'))->getAttribute('value')); }
/** * @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: "); } }
public function formElementsExist() { $expected_ids = array('edit-submitted-name', 'edit-submitted-email', 'edit-submitted-favorite-muppet'); foreach ($expected_ids as $expected_id) { $this->assertOneOf($expected_id); } $muppet_radios = $this->webDriver->findElements(WebDriverBy::name('submitted[favorite_muppet]')); $actual_muppet_count = count($muppet_radios); $expected_muppet_count = 7; $this->assertEquals($expected_muppet_count, $actual_muppet_count); // This array starts at 1, not 0. for ($i = 1; $i <= $expected_muppet_count; $i++) { $muppet_id = "edit-submitted-favorite-muppet-{$i}"; $this->assertOneOf($muppet_id); } }
function orderMedications($driver, $name) { goHome($driver); $medication = $driver->findElement(WebDriverBy::linkText('Medication List')); $medication->click(); $driver->wait(65); $order = $driver->findElement(WebDriverBy::className('btn')); $order->click(); $driver->findElement(WebDriverBy::name("quantity"))->sendKeys("23"); $driver->findElement(WebDriverBy::name("name"))->sendKeys($name); $order = $driver->findElement(WebDriverBy::className('btn')); $order->click(); // $driver->findElement(WebDriverBy::name("quantity"))->sendKeys("5"); // $driver->findElement(WebDriverBy::name("name"))->sendKeys($name); // $order = $driver->findElement(WebDriverBy::className('btn')); // $order->click(); goHome($driver); }
function login($driver) { $driver->get(wordpress('/wp-login.php')); $driver->findElement(WebDriverBy::tagName('body'))->click(); $driver->findElement(WebDriverBy::name('log'))->clear()->click()->sendKeys('admin'); $driver->findElement(WebDriverBy::name('pwd'))->sendKeys('admin'); $driver->findElement(WebDriverBy::tagName('form'))->submit(); if ($driver->findElement(WebDriverBy::tagName('h2'))->getText() == 'Dashboard') { print "Successfully logged into WordPress.\n"; } else { var_dump($driver->getPageSource()); throw new UnexpectedValueException('Login failed.'); } }
/** * @test */ public function testBookingattributeManagement() { //#1 Create a new booking attribute self::$helper->createBookingAttribute("Book_A"); try { self::$webDriver->findElement(WebDriverBy::id('radio_action_mode_rename_attribute'))->click(); self::$webDriver->findElement(WebDriverBy::xpath("//option[text()='Book_A']")); } catch (Exception $ex) { $this->fail("#1 Creation of a new booking attribute has failed" . $ex); } //#2 Create an empty booking attribute self::$helper->createBookingAttribute(""); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); } catch (Exception $ex) { $this->fail("#3 Creation of an empty booking attribute has succeded" . $ex); } //#3 Create an existing booking attribute self::$helper->createBookingAttribute("Book_A"); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); } catch (Exception $ex) { $this->fail("#3 Creation of an existing booking attribute has succeded" . $ex); } //#4 Create a new booking attribute with html tags self::$helper->createBookingAttribute("<b><u>Book_B</u></b>"); try { self::$webDriver->findElement(WebDriverBy::id('radio_action_mode_rename_attribute'))->click(); self::$webDriver->findElement(WebDriverBy::xpath("//option[text()='Book_B']")); } catch (Exception $ex) { $this->fail("#5 Creation of a new booking attribute with HTML has failed" . $ex); } self::$helper->changeBookingAttribute('Book_B', 'Book_B'); //#5 Check if creation bookings GUI has the new attributes self::$helper->createRoom('123', 1, 20, "TEST", " - Keine Zuordnung - ", array()); self::$helper->searchForRoomByAll("123", "", "", "", date('Y') + 1, '23', '50', '23', '55', array()); self::$webDriver->findElement(WebDriverBy::linkText("Buchen"))->click(); try { self::$webDriver->findElement(WebDriverBy::xpath("//label[text()='Book_A']")); self::$webDriver->findElement(WebDriverBy::xpath("//label[text()='Book_B']")); } catch (Exception $ex) { $this->fail("#5 Creation booking GUI does not have created attributes" . $ex); } self::$helper->doABooking('TEST', "", "", "", "", "", "", "", "", "", "", false, "", false, array(), array('Book_A' => 'TEST A', 'Book_B' => 'TEST B')); //#6 Change name of a booking attribute into a new self::$helper->changeBookingAttribute('Book_A', 'Book_C'); try { self::$webDriver->findElement(WebDriverBy::id('radio_action_mode_rename_attribute'))->click(); self::$webDriver->findElement(WebDriverBy::xpath("//option[text()='Book_C']")); } catch (Exception $ex) { $this->fail("#6 Renaming a booking attribute has failed" . $ex); } //#7 Change name of a booking attribute into nothing self::$helper->changeBookingAttribute('Book_C', ''); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); } catch (Exception $ex) { $this->fail("#7 Changing a booking attribute to no name has succeded" . $ex); } //#8 Change name of a booking attribute into existing one self::$helper->changeBookingAttribute('Book_C', 'Book_B'); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); } catch (Exception $ex) { $this->fail("#8 Changing a booking attribute to an existing name has succeded " . $ex); } //#9 Change name of a booking attribute into the same self::$helper->changeBookingAttribute('Book_C', 'Book_C'); try { self::$webDriver->findElement(WebDriverBy::id('radio_action_mode_rename_attribute'))->click(); self::$webDriver->findElement(WebDriverBy::xpath("//option[text()='Book_C']")); } catch (Exception $ex) { $this->fail("#9 Renaming a booking attribute to his old name has failed " . $ex); } //#10 Check if changes did not effect the bookings self::$webDriver->findElement(WebDriverBy::linkText('Termine'))->click(); self::$webDriver->findElement(WebDriverBy::id('ilChkboxListAnchorText_tbl_roomobj'))->click(); try { self::$webDriver->findElement(WebDriverBy::xpath("//td[text()='Book_C']")); self::$webDriver->findElement(WebDriverBy::xpath("//td[text()='Book_B']")); $attr_inputs = self::$webDriver->findElements(WebDriverBy::name("tblfsroomobj[]")); foreach ($attr_inputs as $input) { if (empty($input->getAttribute('checked'))) { $input->click(); } } self::$webDriver->findElement(WebDriverBy::name("cmd[showBookings]"))->click(); self::$webDriver->findElement(WebDriverBy::xpath("//td[contains(text(),'TEST A')]")); self::$webDriver->findElement(WebDriverBy::xpath("//td[contains(text(),'TEST B')]")); } catch (Exception $ex) { $this->fail("#10 Changes of a booking attribute does effect bookings"); } //#11 Delete booking attribute self::$helper->deleteBookingAttribute("Book_C"); $el = false; try { self::$webDriver->findElement(WebDriverBy::id('radio_action_mode_rename_attribute'))->click(); $el = self::$webDriver->findElement(WebDriverBy::xpath("//option[text()='Book_C']")); } catch (Exception $unused) { } if ($el) { $this->fail("#11 Deleting a booking attribute has failed"); } self::$helper->deleteBookingAttribute("Book_B"); //#12 Change none booking attribute to a new name self::$helper->changeBookingAttribute('', 'Book_B'); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); } catch (Exception $ex) { $this->fail("#12 Changing a none existing booking attribute to an none existing name has succeded" . $ex); } //#13 Delete none booking attribute self::$helper->deleteBookingAttribute(''); try { self::$webDriver->findElement(WebDriverBy::className("ilFailureMessage")); } catch (Exception $ex) { $this->fail("#13 Deleting a none existing booking attribute has succeded" . $ex); } //#14 Check if deletion did effect the bookings self::$webDriver->findElement(WebDriverBy::linkText('Termine'))->click(); try { self::$webDriver->findElement(WebDriverBy::id('ilChkboxListAnchorText_tbl_roomobj'))->click(); $this->fail("#14 Deletion of a booking attribute does not effect bookings"); } catch (Exception $unused) { } self::$helper->deleteAllRooms(); }