2017-08-30 55 views
1

我有以下的測試代碼:硒 - 計數與匹配類元素的數量

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

你想按照你寫的方式使用By.className。即

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

使用By.css,你應該使用CSS選擇器。

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

或者

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