我是Node.js的新手,目前我正在尝试将一些Python代码重新编写到其中。
我在Python中有以下代码段,其中driver
是我的webdriver
实例。
tabs = driver.find_elements_by_xpath('//div[@class="className"]')
for tab in tabs:
print(tab.find_element_by_tag_name('span').text)
My 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());
}
但是我收到了错误
TypeError:tab.findElement不是函数
造成这种情况的原因是什么?
我必须承认,我觉得我稍微忽略了Node.js的关键点,但也许这个例子可能有助于我理解。
答案 0 :(得分:0)
如果我深入了解findElement()
的selenium源代码,我发现它可能需要opt_root
作为参数。关于它的文档说:
@param {?{ELEMENT:string} =} opt_root的WebElement参考 *元素执行搜索。如果未指定,将使用 *目标网页的{@code document}。
所以我认为不是tab.findElement(webdriver.By.css('span')
而是你必须这样做:
driver.findElement(webdriver.By.css, 'span', tab)
注意:我并不确切知道node.js
的工作原理。我刚刚浏览了源代码,所以我不确定它是否可行。