2016-06-30 3 views
0

Ich bin völlig neu in Node.js und versuche derzeit, etwas von meinem Python-Code in es zu schreiben.NodeJS Selen mit WebElements zurückgegeben von findElements

Ich habe das folgende Snippet in Python, wo driver ist meine webdriver Instanz.

tabs = driver.find_elements_by_xpath('//div[@class="className"]') 
for tab in tabs:  
    print(tab.find_element_by_tag_name('span').text) 

Meine Node.js Interpretation dieses Codes ist

tabs = driver.findElements(webdriver.By.xpath('//div[@class="className"]'));   
for (var tab in tabs) {   
    console.log(tab.findElement(webdriver.By.css('span')).getText()); 
} 

Jedoch habe ich die Störung erhalte

TypeError: tab.findElement is not a function

Was ist der Grund dafür?

Ich muss zugeben, ich fühle mich, als ob ich den Schlüsselpunkt von Node.js etwas vermisse, aber vielleicht hilft mir dieses Beispiel, das zu verstehen.

Antwort

0

Wenn ich in den Selen-Quellcode für findElement() eingrabe, sehe ich, dass es einen opt_root als Parameter nehmen kann. Der Doc darüber sagt:

@param {?{ELEMENT: string}=} opt_root The WebElement reference for the * element to perform the search under. If not specified, will use * {@code document} for the target page.

So denke ich, dass statt tab.findElement(webdriver.By.css('span') Sie zu tun haben: driver.findElement(webdriver.By.css, 'span', tab)

Hinweis: Ich weiß nicht genau, wie node.js funktioniert. Ich habe gerade den Quellcode durchgesehen, daher bin ich mir nicht sicher, ob das funktioniert.

Verwandte Themen