В NodeJS selenium-webdriver, как вы получаете innerHTML элемента

#node.js #selenium-webdriver

#node.js #selenium-webdriver

Вопрос:

Я прошел через: https://code.google.com/p/selenium/wiki/WebDriverJs и в нем нет никакой информации. Итак, кто-нибудь может помочь.

У меня есть

 var element = driver.findElements(webdriver.By.id("something"))
console.log('text=' element.getAttribute("inner‌​HTML"));
 

Но не работает. Большая часть документации, похоже, предназначена для JAVA, а не для NodeJS. Если вы столкнетесь с функцией .getText(), я почти уверен, что это JAVA. На самом деле мне просто нужна текстовая часть innerText, а не innerHTML. Но это может быть слишком много.

Комментарии:

1. Я думал, webdriver js был асинхронным? Я удивлен, что этот элемент не равен нулю при запуске консоли. журнал выполняется, если он не находится в обратном вызове.

Ответ №1:

Вы можете проверить innerHTML следующим образом:

 driver.executeScript(function() {
    return document.querySelector('#something').innerHTML;
  }).then(function(innerHTML) {
   //check content here 
  });
 

Комментарии:

1. Никогда не знал, что это такое! Потрясающе!

Ответ №2:

В соответствии с webdriver.js документы:

 var myElement = element(by.css('.myclass'));

myElement.getInnerHtml().then(function(html) {
    //do stuff with html here
});
 

Надеюсь, это поможет! Это работает для меня, используя Node.js Selenium / WebDriver и т.д.