我有以下测试代码:
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\']')
两个人都没有从页面中拾取任何元素。但我可以从观察中看出它正在加载正确的页面,因此不确定这里发生了什么。
答案 0 :(得分:1)
您希望以By.className
的方式使用它。即。
By.className('my-questions-class')
使用By.css
时,您应该使用CSS选择器。
By.css('.my-questions-class')
或者
By.css('div.my-questions-class')