/** * @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_img_lg'))); $this->products = $this->web_driver->findElements(WebDriverBy::cssSelector("a.pname_list")); }
protected function assertElementNotFound($by) { $els = $this->webDriver->findElements($by); if (count($els)) { $this->fail("Unexpectedly element was found"); } // increment assertion counter $this->assertTrue(true); }
/** * @return string */ public function getVisibleText() { $els = $this->webDriver->findElements(\WebDriverBy::cssSelector('body')); if (count($els)) { return $els[0]->getText(); } return ""; }
public function dontSeeLink($text, $url = null) { $nodes = $this->webDriver->findElements(\WebDriverBy::partialLinkText($text)); if (!$url) { $this->assertNodesNotContain($text, $nodes, 'a'); return; } $nodes = array_filter($nodes, function (\WebDriverElement $e) use($url) { return trim($e->getAttribute('href')) == trim($url); }); $this->assertNodesNotContain($text, $nodes, "a[href={$url}]"); }
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); } }
public function changeProgramStatus($staff_uid, $staff_pwd, $start_time, $new_status) { Automation::login($staff_uid, $staff_pwd, $this->webDriver); 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(30, 1500)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::cssSelector('.pager-first'))); $select = new WebDriverSelect($this->webDriver->findElement(WebDriverBy::id('edit-operation'))); $select->selectByValue('action::naeyc_vbo_actions_change_status'); $this->webDriver->findElement(WebDriverBy::id('edit-submit--2'))->click(); $checkboxes = $this->webDriver->findElements(WebDriverBy::xpath('//input[@type=\'checkbox\']')); $last_checkbox = end($checkboxes); $last_checkbox->click(); $select = new WebDriverSelect($this->webDriver->findElement(WebDriverBy::id('edit-status-dropdown'))); $select->selectByValue($new_status); $this->webDriver->findElement(WebDriverBy::id('edit-submit'))->click(); $this->webDriver->wait(30, 1500)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::cssSelector('.messages'))); $this->assertContains("Program Webdriver Program {$start_time} changed from", Automation::grabElementByCssSelector($this->webDriver, '.messages')->getText()); }
/** * Returns the given elements by css selector * @param string $css_selector * @return RemoteWebElement */ public function getElementsBySelector($css_selector) { return self::$webDriver->findElements(\WebDriverBy::cssSelector($css_selector)); }
public function checkNotPresent($locator) { $this->assertEquals(0, count($this->webDriver->findElements($locator))); }
/** * @param $expected_id */ public function assertOneOf($expected_id) { $matches = $this->webDriver->findElements(WebDriverBy::id($expected_id)); $this->assertEquals(1, count($matches), 'Should have one ' . $expected_id); }
/** * @param string $selector * @return \RemoteWebElement[] */ private function _getElements($selector) { return $this->_driver->findElements($this->_getWebDriverBy($selector)); }