Manipulando Páginas¶
Uma vez que você pegue um elemento da página, você vai querer manipulá-lo. Você pode também interagir com a página, que é coberta no próximo capitulo.
Obtendo o nome da tag¶
O método NodeElement::getTagName lhe permite obter o nome da tag do
elemento. Este nome é sempre retornado em letras minúsculas.
$el = $page->find('css', '.something');
// obter o nome da tag:
echo $el->getTagName(); // exibe 'a'
Acessando atributos HTML¶
A classe NodeElement lhe dá acesso aos atributos HTML do elemento.
NodeElement::hasAttribute- Verifica se o elemento tem um determinado atributo.
NodeElement::getAttribute- Obtém o valor de um atributo.
NodeElement::hasClass- Verifica se o elemento tem uma dada classe (convenientemente envolvido em
torno de
getAttribute('class')).
$el = $page->find('css', '.something');
if ($el->hasAttribute('href')) {
echo $el->getAttribute('href');
} else {
echo 'Esta âncora não é um link. Ela não tem um href.';
}
Elemento de Conteúdo e Texto¶
A classe Element provê acesso ao conteúdo dos elementos.
Element::getHtml- Obtém o HTML interno do elemento, por exemplo todos os filhos do elemento.
Element::getOuterHtml- Obtém o HTML exterior do elemento, por exemplo incluindo o próprio elemento.
Element::getText- Obtém o texto do elemento.
Nota
getText() irá retirar tags e caracteres não impressos fora da resposta,
incluindo linhas novas. Então ele basicamente retorna o texto, que o usuário
vê na página.
Verificando a visibilidade de um Elemento¶
O método NodeElement::isVisible permite checar se o elemento está visível.
Acessando o estado do formulário¶
A classe NodeElement permite o acesso ao estado de elementos do formulário:
NodeElement::getValue- Obtém o valor do elemento. Veja Interagindo com formulários.
NodeElement::isChecked- Verifica se o checkbox ou o radio button está checado.
NodeElement::isSelected- Verifica se o elemento
<option>está selecionado.
Métodos de atalho¶
A classe TraversableElement provê uns poucos métodos de atalho permitindo a
busca de um elemento filho na página e checar o estado dele imediatamente:
TraversableElement::hasCheckedField- Olha para uma checkbox (veja findField) e checa se ela está checada.
TraversableElement::hasUncheckedField- Olha para um checkbox (veja findField) e checa se ele não está checado.