웹사이트 검색
문제 요약: 저는 AngularJS 앱의 홈 페이지 테스트를 자동화하기 위해 여러 테스트 스위트(Jest와 Puppeteer 사용)를 작성하고 있습니다. 자동화하고 싶은 테스트 중 하나는 사용자가 페이지의 버튼을 눌러 DOM의 요소를 삭제하는 것입니다. 불행히도, 이 요소는 대량의 데이터를 표시하는 데 사용되므로, 요소가 삭제되기 위해서는 먼저 클라이언트가 서버에 POST 요청을 보내 데이터베이스에서 데이터를 삭제해야 하고
더 많은 것을 읽으십시오 →
저는 하나의 사용자 에이전트를 직접 추가하는 대신 기본 위치 경로에서 무작위 사용자 에이전트 목록을 로드하고 싶습니다. 예를 들어: 'agents.json'
agents.json
["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome 더 많은 것을 읽으십시오 →
Puppeteer에서 page.evaluate는 클래스를 인수로 전달하면 오류를 발생시킵니다.
하지만 일반적인 객체에는 작동합니다.
작동하게 만들 수 있는 어떤 해결 방법이 있을까요?
const puppeteer = require("puppeteer"); (async () => { let browser = await puppeteer.launch({ headless: true }); let page = await browse 더 많은 것을 읽으십시오 →
저는 프로젝트에서 Puppeteer와 Webpack을 함께 사용하고 있습니다. 파일들을 하나의 번들로 컴파일한 다음, Puppeteer에서 addScriptTag 메서드를 사용하여 그 파일을 브라우저에 추가하고 있습니다. 또한 exposeFunction 기능을 사용하여 브라우저와 Node.js 간에 데이터를 주고받을 수 있도록 하고 있으며, 구체적으로는 일부 데이터베이스 호출을 수행할 수 있도록 하고 있습니다. 문제는 TypeScript가 이러한 함수들을 인식하지
더 많은 것을 읽으십시오 →
Blob 다운로드를 해결하는 방법에 대한 답변이 있었고, 링크는 다음과 같습니다. Puppeteer를 통해 웹사이트 클라이언트 측에서 생성된 Blob 다운로드를 어떻게 가로챌 수 있나요?
하지만 저는 요청의 시작자가 브라우저의 스크립트인 요청들을 가로채고 싶습니다. 이 요청은 blob 타입인 것 같습니다. 이미지와 같이:
위 예제를 따라 했을 때, 블롭 요청이 가로채지지 않았습니다. 그렇다면 이 요청을 어떻게 가로채나요?
제 코드 내용은 다음과 같습니다:
import {Browser, connect, Page} from "pu 더 많은 것을 읽으십시오 →
이 질문을 해결하기 위한 몇 가지 오래된 방법이 있는데, 하나는 깃허브에 있고, 다른 하나는 스택오버플로우에 있습니다.
puppeteer는 하위 버전에서 _client 속성을 가지고 있습니다. 하위 버전에서의 해결 방법은 다음과 같습니다:
page._client.send('Network.setBypassServiceWorker', {bypass: true})퍼페티어 버전은 18.0.5이므로,
더 많은 것을 읽으십시오 →
저는 간단한 퍼펫티어 스크립트를 가지고 있습니다:
export async function inspectWebpage(source) { const b = await getBrowser() const p = await b.newPage() await p.goto(path) const script = fs.readFileSync( 'host/code/node/puppeteer/crawl.js', 'utf-8', ) await p.evaluate(script) let data = await p.evaluate(() => task.getWebpageData()) await b.close() return data }저는 이것을 사용할 때마다 보고 있으며, 이것을 없애고 싶습니다.
Cannot find name 'task'.ts(2304) 더 많은 것을 읽으십시오 →
문제의 원인: Firebase Functions Node.Js 버전이 아직 Async/Await를 지원하지 않기 때문에 Javascript를 그대로 사용할 수 없습니다. 그래서 이것을 Typescript에 넣고 지금은 commonJs로 트랜스파일하려고 하고 있습니다.
그럼 난 해.
tsc -p config.json를 실행하면 다음과 같은 오류가 발생합니다.
../../../node_modules/firebase-functions/lib/providers/auth.d 더 많은 것을 읽으십시오 →
그래서 저는 앱에서 메뉴가 열려 있을 때 본문에서 화살표 키로 스크롤하는 기능을 비활성화하고, 그렇지 않을 때는 동작을 그대로 두는 기능을 작업하고 있습니다.
저는 Puppeteer에서 그 동작을 테스트하려고 시도하고 있지만, 화살표 아래 키를 눌러도 창이 스크롤되지 않는 것 같습니다. 다음은 제가 구현과 테스트에서 하고 있는 몇 가지 예시입니다:
const disableArrowScroll = (event: KeyboardEvent) => { if ( isOpen && 더 많은 것을 읽으십시오 →
저는 puppeteer를 사용하여 mat-slider 값을 프로그래밍 방식으로 변경하려고 하고 있지만 작동하지 않습니다.
제가 시도한 것은 이렇습니다:
async function changeSliderValue(page:Page){ try { const thumb = await page.$('.mat-slider-thumb'); const position = await thumb.boundingBox(); await page.mouse.move(position.x, p 더 많은 것을 읽으십시오 →