2016-06-30 1 views
0

Я совершенно новичок в Node.js, и в настоящее время я пытаюсь переписать в него некоторый код моего Python.NodeJS Selenium с использованием WebElements, возвращаемого из findElements

У меня есть следующий фрагмент в 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) 

Моя 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 is not a function

Что является причиной этого?

Должен признаться, я чувствую, что у меня немного отсутствует ключевой момент 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 работы. Я просто просмотрел исходный код, поэтому не уверен, что он сработает.

Смежные вопросы