在PHPUnit Selenium 2测试用例中选择所有匹配的元素

Pav*_* S. 10 php selenium phpunit unit-testing selenium-webdriver

在PHPUnit Selenium 2测试用例中,通过指定其类来选择元素很简单:

$element = $this->byClassName("my_class");
Run Code Online (Sandbox Code Playgroud)

但是,即使有两项my_class,选择器也只选择其中一项(可能是第一项).我该如何选择所有这些?我很感激allByClassName:

$elements = $this->allByClassName("my_class");
foreach($elements as $element) {
    doSomethingWith($element);
}
Run Code Online (Sandbox Code Playgroud)

allByClassNamePHPUnit Selenium 2扩展中有什么类似的东西吗?

Dav*_*vid 19

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());
}
Run Code Online (Sandbox Code Playgroud)

(此文件包含Selenium2TestCase类本身的测试,因此它非常适合了解其功能)

遵循此方法,您可以检索具有某个类的所有元素,如下所示:

    $elements = $this->elements($this->using('css selector')->value('*[class="my_class"]'));
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.