Selenium WebDriver JS에서 getWindowHandles를 사용하는 중 오류 발생

4

질문:

내가 하고 싶은 일을 어떻게 하느냐는 질문과 비슷한 질문이 하나 있는데 답은 나에게 작용하지 않는다.나는 아직 이 점을 평론하거나 해명할 충분한 명성이 없다.
NodeJS에서 JavaScript와 WebDriverJS를 사용합니다
새 창으로 전환하려고 시도하고 있습니다. 이 창은 target=\u 공백 링크를 방금 열었습니다.
나는 이미 문제를 운전사의 문제로 귀결시킨 것 같다.getWindowHandles () 오류 하나 주세요.
노드 js 파일을 클립하려면 다음과 같이 하십시오.
var webdriver = require("selenium-webdriver");
var driver = new webdriver.Builder().usingServer().withCapabilities({'browserName': 'chrome' }).build();

driver.get('https://www.google.com');
driver.getTitle().then(function (title) {
    console.log(title);
    var handles = driver.getWindowHandles();
});
driver.getTitle().then(function (title) {
    console.log(title);
});
이것은 내 명령줄의 모양입니다:
C:\selenium>node test2.js
Google
C:\selenium\node_modules\selenium-webdriver\lib\goog\async\nexttick.js:39
  goog.global.setTimeout(function() { throw exception; }, 0);
                                            ^
TypeError: undefined is not a function
    at C:\selenium\test2.js:8:23
    at promise.ControlFlow.runInFrame_ (C:\selenium\node_modules\selenium-webdri
ver\lib\webdriver\promise.js:1877:20)
    at promise.Callback_.goog.defineClass.notify (C:\selenium\node_modules\selen
ium-webdriver\lib\webdriver\promise.js:2464:25)
    at promise.Promise.notify_ (C:\selenium\node_modules\selenium-webdriver\lib\
webdriver\promise.js:563:12)
    at Array.forEach (native)
    at Object.goog.array.forEach (C:\selenium\node_modules\selenium-webdriver\li
b\goog\array\array.js:203:43)
    at promise.Promise.notifyAll_ (C:\selenium\node_modules\selenium-webdriver\l
ib\webdriver\promise.js:552:16)
    at goog.async.run.processWorkQueue (C:\selenium\node_modules\selenium-webdri
ver\lib\goog\async\run.js:125:21)
    at runMicrotasksCallback (node.js:337:7)
    at process._tickCallback (node.js:355:11)
만약 내가 변수 핸들을 주석해 버리면...그래, 그리고 스크립트가 완성되어 오류가 없고, 텍스트 '구글' 을 명령 알림부호에 두 번 출력합니다

답안

생각났어!
1) 호출은 javascript의 getallWindowHandles입니다.이것은 왜 모든 언어의api가 같은 사물에 대해 다른 명칭을 가지고 있는지 나를 매우 화나게 한다.
webdriverJS webdriver 클래스에 대한 참조:
http://selenium.googlecode.com/git/docs/api/javascript/class_webdriver_WebDriver.html
2) 되돌아오는 것은 약속이지 내가 원하는 실제 그룹이 아니기 때문에 한 그룹에서 처리하기 쉽다.그리고 성명.
인쇄된 새 코드:
구글
[열린 창 이름 배열]
구글
var webdriver = require("selenium-webdriver");
var driver = new webdriver.Builder().usingServer().withCapabilities({'browserName': 'chrome' }).build();

driver.get('https://www.google.com');
driver.getTitle().then(function (title) {
    console.log(title);
    driver.getAllWindowHandles().then(function (allhandles) {
        console.log(allhandles);
    });
});
driver.getTitle().then(function (title) {
    console.log(title);
});