Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 58083ab

Browse files
add cross-browser testing for the testing unit.
1 parent 117f45a commit 58083ab

File tree

5 files changed

+218
-0
lines changed

5 files changed

+218
-0
lines changed
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
/**
2+
* @name Alibaba product search
3+
* @desc Searches Alibaba.com for a product and checks if the results show up
4+
*/
5+
const puppeteer = require('puppeteer')
6+
7+
8+
// the site you want a styleguide for
9+
const URL = "https://google.com/";
10+
11+
const delaySecond = async (time) => await new Promise(res => setTimeout(res, 1000 * time));
12+
13+
14+
const headless = true;
15+
16+
const defaultViewport = {
17+
width: 1080,
18+
height: 800,
19+
deviceScaleFactor: 1,
20+
}
21+
22+
let chromeSettings = {
23+
timeout: 0,
24+
headless: headless,
25+
devtools: false,
26+
27+
// if this is different on your machine, goto chrome://version/ and find the path.
28+
executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
29+
defaultViewport: defaultViewport
30+
};
31+
32+
let edgeSettings = {
33+
timeout: 0,
34+
headless: headless,
35+
devtools: false,
36+
// if this is different on your machine, goto edge://version/ and find the path.
37+
// executablePath: 'C:\\Users\\joe\\AppData\\Local\\Microsoft\\Edge SxS\\Application\\msedge.exe'
38+
executablePath: '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge',
39+
defaultViewport: defaultViewport
40+
};
41+
42+
let fireSettings = {
43+
args: [
44+
'--ignore-certificate-errors',
45+
'--enable-features=NetworkService',
46+
],
47+
product: 'firefox',
48+
// executablePath:'/Applications/Firefox.app/Contents/MacOS/firefox',
49+
// executablePath: "C:\\Program Files\\Mozilla Firefox\\firefox.exe
50+
// executablePath: 'C:\\Users\\joe\\AppData\\Local\\Microsoft\\Edge SxS\\Application\\msedge.exe',
51+
timeout: 0,
52+
headless: headless,
53+
devtools: false,
54+
defaultViewport: defaultViewport
55+
};
56+
57+
58+
59+
beforeAll(async () => {
60+
// chrome = await puppeteer.launch(chromeSettings)
61+
// chrome_page = await chrome.newPage()
62+
63+
// edge = await puppeteer.launch(edgeSettings)
64+
// edge_page = await edge.newPage()
65+
66+
// firefox = puppeteer.launch(fireSettings)
67+
// fire_page = await firefox.newPage()
68+
})
69+
70+
describe('Open the website in Chrome, FireFox and Chrome-Edge', () => {
71+
72+
test('Should open a website with chrome', async () => {
73+
let browser = await puppeteer.launch(chromeSettings)
74+
try {
75+
let page = await browser.newPage()
76+
let site = await page.goto(URL)
77+
let screenshot = await page.screenshot({
78+
path: './Browsers/Chrome.png',
79+
fullPage: true
80+
})
81+
let img = await page.waitForSelector('#hplogo')
82+
83+
// await Promise.all([browser,page,site,screenshot,img]);
84+
expect(img).toBeTruthy()
85+
86+
} catch (error) {
87+
console.error(`Chrome`,error)
88+
return Promise.reject(error);
89+
}
90+
await browser.close();
91+
}, 10000)
92+
93+
test('Should open a website with chrome-EDGE', async () => {
94+
let browser = await puppeteer.launch(edgeSettings)
95+
try {
96+
let page = await browser.newPage()
97+
let site = await page.goto(URL)
98+
let screenshot = await page.screenshot({
99+
path: './Browsers/Edge.png',
100+
fullPage: true
101+
})
102+
// Download btn should appear
103+
let img = await page.waitForSelector('#hplogo')
104+
// const downloadBTN = await page.$(downloadSelector)
105+
expect(img).toBeTruthy()
106+
} catch (error) {
107+
console.error(`EDGE`,error)
108+
return Promise.reject(error);
109+
}
110+
await browser.close()
111+
}, 10000)
112+
113+
114+
115+
116+
afterAll(async () => {
117+
// await browser.close()
118+
})
119+
})
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
2+
const puppeteer = require('puppeteer')
3+
const delaySecond = async (time) => await new Promise(res => setTimeout(res, 1000 * time));
4+
5+
describe('Open the website in Chrome, FireFox and Chrome-Edge', () => {
6+
test('Should open a website with FIREFOX', async () => {
7+
let FIREsettings = {
8+
headless: false,
9+
ignoreHTTPSErrors: true,
10+
acceptInsecureCerts: true,
11+
product: 'firefox',
12+
// executablePath:'/Applications/Firefox.app/Contents/MacOS/firefox',
13+
args: ['--proxy-bypass-list=*', '--disable-gpu', '--disable-dev-shm-usage', '--disable-setuid-sandbox', '--no-first-run', '--no-sandbox', '--no-zygote', '--single-process', '--ignore-certificate-errors', '--ignore-certificate-errors-spki-list', '--enable-features=NetworkService']
14+
}
15+
let browser = await puppeteer.launch(FIREsettings)
16+
let page = await browser.newPage()
17+
try {
18+
await page.goto("https://google.com")
19+
await page.screenshot({
20+
path: './Browsers/FIRE.png',
21+
fullPage: true
22+
})
23+
let img = await page.waitForSelector('#hplogo')
24+
}
25+
catch (error) {
26+
console.error(`FIRE`,error)
27+
}
28+
await delaySecond(100)
29+
await browser.close();
30+
31+
})
32+
})

‎JavaScript-First/Testing/iPhone-Test.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* This script should go to style
3+
*/
4+
const puppeteer = require('puppeteer')
5+
const iPhone = puppeteer.devices['iPhone 8'];
6+
7+
let settings = {
8+
9+
timeout: 0,
10+
headless: true,
11+
devtools: false,
12+
13+
defaultViewport: {
14+
width: 1080,
15+
height: 800,
16+
deviceScaleFactor: 1,
17+
}
18+
};
19+
20+
(async () => {
21+
const browser = await puppeteer.launch(settings)
22+
const page = await browser.newPage()
23+
await page.emulate(iPhone)
24+
await page.goto('https://google.com/')
25+
await page.screenshot({
26+
path: './iphone/iphone-6.png',
27+
fullPage: true
28+
})
29+
console.log(await page.title())
30+
await browser.close()
31+
})()

‎JavaScript-First/Testing/package.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "bootstrap-tests",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "jest"
8+
},
9+
"keywords": [],
10+
"author": "",
11+
"license": "ISC",
12+
"dependencies": {
13+
"jest": "^26.1.0",
14+
"mocha": "^8.0.1",
15+
"puppeteer": "^5.2.1",
16+
"puppeteer-core": "^5.2.1"
17+
}
18+
}

‎JavaScript-First/Testing/settings.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
let settings = {
2+
timeout: 0,
3+
headless: false,
4+
devtools: false,
5+
6+
// Open with Chrome Browser
7+
// executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
8+
// userDataDir: '/Users/user/Library/Application Support/Google/Chrome/Profile 4/',
9+
10+
defaultViewport: {
11+
width: 1080,
12+
height: 800,
13+
deviceScaleFactor: 1,
14+
}
15+
};
16+
17+
exports.default = settings;
18+
exports.settings = settings;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /