Nette/Tester Tester\DomQuery has seznam li
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- motorcb
- Člen | 552
Zdravím,
mám následující list:
<ul class="menu">
<li>Úvod</li>
<li>O nás</li>
<li>Programy</li>
<li>Kontakt</li>
<li>Login</li>
</ul>
Získám si dom stránky, to je OK:
$html = (string) $response->getSource();
$dom = Tester\DomQuery::fromHtml($html);
Jak zjistím že 5 položka v seznamu ul.menu má hodnotu „Login“ ????
Díky
- Jan Suchánek
- Člen | 404
a němělo by to být nějak takto?
Assert::same( 'Login', $dom->find('ul.menu li', 4));
viz dokumentace.
Editoval jenicek (23. 4. 2015 16:09)
- motorcb
- Člen | 552
@jenicek bohužel taky neprojde :-(
Failed: array(Tester\DomQuery(#90e1), Tester\DomQuery(#112f), Tester\DomQuery(#d908), ...) should be 'Login' in testHomepage()
HompeageTest.actual:
array(
Tester\DomQuery::__set_state(array()),
Tester\DomQuery::__set_state(array()),
Tester\DomQuery::__set_state(array()),
Tester\DomQuery::__set_state(array()),
Tester\DomQuery::__set_state(array()),
)
HompeageTest.expected:
Login
Tuší někdo proč?
- David Matějka
- Moderator | 6445
Tak vidis, ze to vraci pole s peti polozkami. Takze pata bude pravdepodobne to co chces. A z dokumentace SimpleXmlElement-u se dozvis, ze ma __toString metodu, takze k hodnote se dostanes pomoci:
(string) $dom->find('ul.menu li')[4];
- motorcb
- Člen | 552
@DavidMatějka díky davide. Fnguje! Ještě to trochu zkomplikuju :-)
<ul class="menu">
<li><a href="uvod">Úvod</a></li>
<li><a href="o-nas">O nás</a></li>
<li><a href="program">Programy</a></li>
<li><a href="kontakt">Kontakt</a></li>
<li><a href="login">Login</a></li>
</ul>
Jak si nyní sáhnu na 5 položku v ul.menu ve které chci textový obsah odkazu? Díky :-)