Nearsoft\SeleniumClient\WebDriver::findElement PHP Method

findElement() public method

Gets an element within current page
public findElement ( By $locator, boolean $polling = false, integer $elementId ) : Nearsoft\SeleniumClient\WebElement
$locator By
$polling boolean
$elementId integer
return Nearsoft\SeleniumClient\WebElement
    public function findElement(By $locator, $polling = false, $elementId = -1)
    {
        if (strpos($locator->getStrategy(), 'js selector ') === 0) {
            $result = $this->findElements($locator, $polling, $elementId);
            if (!$result) {
                throw new Exceptions\NoSuchElement();
            }
            return $result[0];
        } else {
            $params = array('using' => $locator->getStrategy(), 'value' => $locator->getSelectorValue());
            if ($elementId < 0) {
                $command = new Commands\Command($this, 'element', $params);
            } else {
                $command = new Commands\Command($this, 'element_in_element', $params, array('element_id' => $elementId));
            }
            $command->setPolling($polling);
            $results = $command->execute();
            return new WebElement($this, $results['value']['ELEMENT']);
        }
    }

Usage Example

Beispiel #1
0
 public function testDemo2()
 {
     //click button/get alert text
     $this->_driver->get($this->_testUrl);
     $this->_driver->findElement(By::id("btnAlert"))->click();
     $alert = $this->_driver->switchTo()->alert();
     $this->assertEquals("Here is the alert", $alert->getText());
     $alert->accept();
     //get main window handle
     $mainWindowHandle = $this->_driver->getWindowHandle();
     //open popup window / handle its elements
     $this->_driver->findElement(By::id("btnPopUp1"))->click();
     $this->_driver->switchTo()->window("popup1");
     $webElement = $this->_driver->waitForElementUntilIsPresent(By::id("txt1"));
     $webElement->sendKeys("test window");
     $this->assertEquals("test window", $webElement->getAttribute("value"));
     $this->_driver->close();
     $this->_driver->switchTo()->window($mainWindowHandle);
     //get iframe / handle its elements
     $this->_driver->switchTo()->frame("iframe1");
     $webElement = $this->_driver->waitForElementUntilIsPresent(By::id("txt1"));
     $webElement->sendKeys("test iframe");
     $this->assertEquals("test iframe", $webElement->getAttribute("value"));
     $this->_driver->switchTo()->window($mainWindowHandle);
     //wait for element to be present
     $this->_driver->findElement(By::id("btnAppendDiv"))->click();
     $wait = new WebDriverWait(8);
     $label = $wait->until($this->_driver, "findElement", array(By::id("dDiv1-0"), true));
     $this->assertEquals("Some content", $label->getText());
     sleep(5);
 }
All Usage Examples Of Nearsoft\SeleniumClient\WebDriver::findElement