2016-07-10 4 views
1

악몽 - iframe 플러그인을 사용하여 임의로 생성 된 이름으로 iframe에 액세스하려면 어떻게해야하나요?악몽 - iframe 동적 iframe 이름

나는

var name = yield nightmare 
    .goto(defaultUrl) 
    .click('.btn-login') 
    .wait('iframe') 
    .evaluate(function() { 
    return document.getElementsByTagName('iframe'); 
    }); 

yield nightmare.use(iframe.withFrameName(name, function(IFnightmare) { 
    IFnightmare 
    .type('input[name=username]', 'username') 
    .type('input[name=password]', 'password') 
    .click('button[type=submit]') 
})) 

을 시도했지만이 코드로 끝나는 - 형식 오류 : 정의되지 않은

+0

악몽은 어떤 버전을 사용하고 있습니까? – Ross

+0

버전 2.5.3 및 악몽 - iframe 1.0.2를 사용하고 있습니다. – yunicz

답변

2

nightmare-iframe의 특성 'switchToFrame'을 읽을 수 없습니다 악몽> 2.X와 호환되지 않습니다 - 그것은 수있을 것으로 기대 PhantomJS 'switchToFrame으로 전화를 걸면 전자 제품에는 존재하지 않습니다.

  1. 가을 다시 악몽 1.8.x.에 : 여기에서

    , 난 당신이 두 가지 옵션이 생각
    필자가 아는 한 더 이상 지원되지 않지만 PhantomJS를 지원하는 렌더러로 실행됩니다.
  2. 다른 라이브러리를 사용하십시오.This PR은 Nightmare가 필요한 것과 비슷한 종류의 작업을 수행 할 수있는 가능성을 확보하기 위해 Electron와 함께 실행될 때 the long-standing iframe issue에 대한 수정으로 제안되었습니다. 나는 당신에게 유용 할 수도있는 plugin으로 다시 썼다. (즉, 플러그인 매우 위험합니다.주의하십시오.) 완성도를 들어

, 나는 또한 지적해야 그 악몽의 다음 주요 개정에 대한 기본 iframe을 지원 has been proposed은.