在 PHPUnit Selenium 2 测试用例中,通过指定元素的类来选择元素很简单:
$element = $this->byClassName("my_class");
但是,即使 my_class
有两项,选择器也只会选择其中一项(可能是第一项)。我怎样才能选择所有这些?我会喜欢像 allByClassName
这样的东西:
$elements = $this->allByClassName("my_class");
foreach($elements as $element) {
doSomethingWith($element);
}
PHPUnit Selenium 2 扩展中是否有类似allByClassName
的内容?
最佳答案
Pavel,您可以在此处找到有关如何选择多个元素的指南:https://github.com/sebastianbergmann/phpunit-selenium/blob/b8c6494b977f79098e748343455f129af3fdb292/Tests/Selenium2TestCaseTest.php
第 92-98 行:
public function testMultipleElementsSelection()
{
$this->url('html/test_element_selection.html');
$elements = $this->elements($this->using('css selector')->value('div'));
$this->assertEquals(4, count($elements));
$this->assertEquals('Other div', $elements[0]->text());
}
(此文件包含 Selenium2TestCase 类本身的测试,因此非常适合了解其功能)
按照此方法,您可以像这样检索具有特定类的所有元素:
$elements = $this->elements($this->using('css selector')->value('*[class="my_class"]'));
希望这对您有所帮助。
关于php - 选择 PHPUnit Selenium 2 测试用例中的所有匹配元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637806/