本文整理汇总了PHP中Codeception\Util\Locator::isXPath方法的典型用法代码示例。如果您正苦于以下问题:PHP Locator::isXPath方法的具体用法?PHP Locator::isXPath怎么用?PHP Locator::isXPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Codeception\Util\Locator
的用法示例。
在下文中一共展示了Locator::isXPath方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: match
/**
* @param $page
* @param $selector
* @param bool $throwMalformed
* @return array
*/
protected function match($page, $selector, $throwMalformed = true)
{
if (is_array($selector)) {
try {
return $page->findElements($this->getStrictLocator($selector));
} catch (InvalidSelectorException $e) {
throw new MalformedLocatorException(key($selector) . ' => ' . reset($selector), "Strict locator");
}
}
if ($selector instanceof WebDriverBy) {
try {
return $page->findElements($selector);
} catch (InvalidSelectorException $e) {
throw new MalformedLocatorException(sprintf("WebDriverBy::%s('%s')", $selector->getMechanism(), $selector->getValue()), 'WebDriver');
}
}
$isValidLocator = false;
$nodes = [];
try {
if (Locator::isID($selector)) {
$isValidLocator = true;
$nodes = $page->findElements(WebDriverBy::id(substr($selector, 1)));
}
if (empty($nodes) and Locator::isCSS($selector)) {
$isValidLocator = true;
$nodes = $page->findElements(WebDriverBy::cssSelector($selector));
}
if (empty($nodes) and Locator::isXPath($selector)) {
$isValidLocator = true;
$nodes = $page->findElements(WebDriverBy::xpath($selector));
}
} catch (InvalidSelectorException $e) {
throw new MalformedLocatorException($selector);
}
if (!$isValidLocator and $throwMalformed) {
throw new MalformedLocatorException($selector);
}
return $nodes;
}
示例2: getLocator
/**
* @param $selector
* @return WebDriverBy
* @throws \InvalidArgumentException
*/
protected function getLocator($selector)
{
if ($selector instanceof WebDriverBy) {
return $selector;
}
if (is_array($selector)) {
return $this->getStrictLocator($selector);
}
if (Locator::isID($selector)) {
return WebDriverBy::id(substr($selector, 1));
}
if (Locator::isCSS($selector)) {
return WebDriverBy::cssSelector($selector);
}
if (Locator::isXPath($selector)) {
return WebDriverBy::xpath($selector);
}
throw new \InvalidArgumentException("Only CSS or XPath allowed");
}
示例3: match
/**
* @param $selector
*
* @return Crawler
*/
protected function match($selector)
{
if (is_array($selector)) {
return $this->strictMatch($selector);
}
try {
$selector = CssSelector::toXPath($selector);
} catch (ParseException $e) {
}
if (!Locator::isXPath($selector)) {
return null;
}
return @$this->crawler->filterXPath($selector);
}
示例4: grabTextFrom
public function grabTextFrom($cssOrXPathOrRegex)
{
$el = null;
if (Locator::isCSS($cssOrXPathOrRegex)) {
$el = $this->session->getPage()->find('css', $cssOrXPathOrRegex);
if ($el) {
return $el->getText();
}
}
if (!$el and Locator::isXPath($cssOrXPathOrRegex)) {
$el = @$this->session->getPage()->find('xpath', $cssOrXPathOrRegex);
if ($el) {
return $el->getText();
}
}
if (@preg_match($cssOrXPathOrRegex, $this->session->getPage()->getContent(), $matches)) {
return $matches[1];
}
throw new ElementNotFound($cssOrXPathOrRegex, 'CSS or XPath or Regex');
}
示例5: filterByXPath
/**
* @param $locator
* @return Crawler
*/
protected function filterByXPath($locator)
{
if (!Locator::isXPath($locator)) {
throw new MalformedLocatorException($locator, 'xpath');
}
return $this->getCrawler()->filterXPath($locator);
}
示例6: match
/**
* @param $selector
*
* @return Crawler
*/
protected function match($selector)
{
if (is_array($selector)) {
return $this->strictMatch($selector);
}
try {
$selector = CssSelector::toXPath($selector);
} catch (ParseException $e) {
}
if (!Locator::isXPath($selector)) {
codecept_debug("XPath `{$selector}` is malformed!");
return new \Symfony\Component\DomCrawler\Crawler();
}
return @$this->crawler->filterXPath($selector);
}
示例7: match
/**
* @param $page
* @param $selector
* @return array
*/
protected function match($page, $selector)
{
$nodes = array();
if (is_array($selector)) {
return $page->findElements($this->getWebDriverLocator($selector));
}
if ($selector instanceof \WebDriverBy) {
return $page->findElements($selector);
}
if (Locator::isID($selector)) {
$nodes = $page->findElements(\WebDriverBy::id(substr($selector, 1)));
}
if (!empty($nodes)) {
return $nodes;
}
if (Locator::isCSS($selector)) {
$nodes = $page->findElements(\WebDriverBy::cssSelector($selector));
}
if (!empty($nodes)) {
return $nodes;
}
if (Locator::isXPath($selector)) {
$nodes = $page->findElements(\WebDriverBy::xpath($selector));
}
return $nodes;
}
示例8: testIsXPath
public function testIsXPath()
{
$this->assertTrue(Locator::isXPath("//hr[@class='edge' and position()=1]"));
$this->assertFalse(Locator::isXPath("and position()=1]"));
$this->assertTrue(Locator::isXPath('//table[parent::div[@class="pad"] and not(@id)]//a'));
}
示例9: match
protected function match($selector)
{
try {
$selector = CssSelector::toXPath($selector);
} catch (ParseException $e) {
}
if (!Locator::isXPath($selector)) return null;
return @$this->crawler->filterXPath($selector);
}
示例10: match
/**
* @param $page
* @param $selector
* @return array
*/
protected function match($page, $selector)
{
$nodes = array();
if (Locator::isID($selector)) $nodes = $page->findElements(\WebDriverBy::id(substr($selector, 1)));
if (!empty($nodes)) return $nodes;
if (Locator::isCSS($selector)) $nodes = $page->findElements(\WebDriverBy::cssSelector($selector));
if (!empty($nodes)) return $nodes;
if (Locator::isXPath($selector)) $nodes = $page->findElements(\WebDriverBy::xpath($selector));
return $nodes;
}