2017-08-30 3 views
1

ich den folgenden Testcode haben:Selen - zählen Anzahl von Elementen mit passenden Klasse

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 
    }); 

in meinem HTML, ist es klar, dass es einige Anpasselemente:

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

gibt es eine gute Warum sollte der Selenium-Code diese HTML-Elemente nicht aufnehmen?

Ich habe auch versucht, diese Wähler statt:

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

weder ein beliebiges Element von der Seite aufgenommen. Aber ich kann durch Beobachtung sagen, dass es die richtige Seite lädt, also nicht sicher, was hier vor sich geht.

Antwort

1

Sie möchten By.className verwenden, wie Sie es geschrieben haben. d. h.

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

Wenn Sie By.css verwenden, sollten Sie den CSS-Selektor verwenden.

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

Oder

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