2016-06-30 5 views
0

私はNode.jsを初めて使用しています。現在、私のPythonコードをいくつか書き直そうとしています。NodeJS SereniumがfindElementsから返されたWebElementsを使用しています

私はdriverが私のwebdriverインスタンスであるPythonで次のスニペットを持っています。

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

私はエラーこれを引き起こしている何

TypeError: tab.findElement is not a function

を取得していますが、このコードの私のNode.jsの解釈は

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

のですか?

私はNode.jsの重要な点を少し失っているような気がしますが、この例が私の理解に役立つかもしれません。

答えて

0

findElement()のセレンソースコードを調べると、opt_rootをパラメータとして使用できることがわかります。それについてのドキュメントは言う:

@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.

は、だから私は代わりに tab.findElement(webdriver.By.css('span')のあなたがしなければならないと思う: driver.findElement(webdriver.By.css, 'span', tab)

注:私は正確にどのようにnode.js作品を知りません。私はちょうどソースコードを調べたので、うまくいくとは思えません。

関連する問題