Created
October 16, 2018 20:17
-
-
Save ebraminio/dcc0331cd5e50e40dd6f5bede78dbbf9 to your computer and use it in GitHub Desktop.
puppeteer for harfbuzz
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const puppeteer = require('puppeteer-core'); | |
const fs = require('fs'); | |
(async () => { | |
const browser = await puppeteer.launch({ | |
headless: false, | |
executablePath: '/usr/bin/chromium-browser', | |
userDataDir: process.env.HOME + '/.config/chromium', | |
args: ['--profile-directory="Default"'] | |
}); | |
const page = await browser.newPage(); | |
await page.goto('https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10342'); | |
const link = await page.$eval('a[href^="https://oss-fuzz.com/download?testcase_id="]', element => element.href); | |
await page._client.send('Page.setDownloadBehavior', {behavior: 'allow', downloadPath: './'}); | |
let fileName; | |
fs.watch('.', (_, name) => fileName = fileName ? fileName : name.replace('.crdownload', '')); | |
try { await page.goto(link); } catch(e) {} | |
await new Promise(resolve => setTimeout(resolve, 500)); | |
// await page.goto('https://github.com/login'); | |
// await page.$eval('#login_field', input => input.value = ''); | |
// await page.$eval('[type="password"]', input => input.value = ''); | |
// await page.$eval('button[type="submit"]', button => button.click()); | |
await page.goto('https://github.com/autofetch/harfbuzz/upload/master/test'); | |
await page.$eval('#commit-summary-input', input => input.value = '[bot] Add a test case, ' + fileName); | |
await (await page.$('input[type="file"]')).uploadFile(fileName); | |
await new Promise(resolve => setTimeout(resolve, 2000)); | |
await page.$eval('.btn-primary', button => button.click()); | |
await new Promise(resolve => setTimeout(resolve, 500)); | |
await page.goto('https://github.com/autofetch/harfbuzz/pull/new/master'); | |
await page.$eval('button .octicon-git-pull-request', button => button.parentElement.click()); | |
await page.$eval('[name="pull_request[title]"]', input => input.value = '[bot] Add a new test case, ' + fileName); | |
await page.$eval('button.btn-primary[type="submit"]', button => { | |
button.removeAttribute('disabled'); | |
button.click(); | |
}); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment