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

标签 php unit-testing selenium phpunit selenium-webdriver

在 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/

相关文章:

php - Codeception - 无法在 Firefox 中保存和加载 session 快照

php - symfony v3.4 无法猜测 Autowiring

php - 将 HTML 转换为 ENML

java - Vanilla JDBC 更新在 Spring 单元测试中未回滚

python - 有什么方法可以告诉 selenium 在某个时候不要执行 js?

java - Selenium webdriver 不退出 chrome 驱动程序

php - 从列 Mysql 中修剪额外的空间

unit-testing - 使用RhinoMocks,我如何断言调用了几种方法之一?

c# - 单元测试 : Assert for a List<int>, List<DateTime> 和 DateTime

java - 如何向 JUnit 测试添加参数?是否可以像 testNg 中那样添加它们?