Selenium - 计算具有匹配类的元素数

时间:2017-08-30 02:22:01

标签: javascript node.js selenium selenium-webdriver

我有以下测试代码:

    it('count elements by class', async t => {
      let count = await driver.findElements(By.css('my-questions-class')).then(v => v.length);
      assert.equal(count, 3);   // count is 0, but I expect 3
    });

在我的HTML中,很明显有一些匹配元素:

<div class="panel panel-default my-questions-class">

有没有一个很好的理由为什么Selenium代码不应该选择这些HTML元素?

我也试过这个选择器:

By.css('div[class=\'my-questions-class\']')

两个人都没有从页面中拾取任何元素。但我可以从观察中看出它正在加载正确的页面,因此不确定这里发生了什么。

1 个答案:

答案 0 :(得分:1)

您希望以By.className的方式使用它。即。

By.className('my-questions-class')

使用By.css时,您应该使用CSS选择器。

By.css('.my-questions-class')

或者

By.css('div.my-questions-class')