diff --git a/3d-boxes-background/cypress.config.js b/3d-boxes-background/cypress.config.js new file mode 100644 index 0000000..97f47c4 --- /dev/null +++ b/3d-boxes-background/cypress.config.js @@ -0,0 +1,9 @@ +const { defineConfig } = require("cypress"); + +module.exports = defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, +}); diff --git a/3d-boxes-background/cypress/e2e/test1.spec.cy.js b/3d-boxes-background/cypress/e2e/test1.spec.cy.js new file mode 100644 index 0000000..96580b4 --- /dev/null +++ b/3d-boxes-background/cypress/e2e/test1.spec.cy.js @@ -0,0 +1,50 @@ +describe('Project 2: 3d-Boxes-Background', () => { + + beforeEach(() => { + cy.visit('http://127.0.0.1:5500/3d-boxes-background/') + }) + + it('Opens the Home Page', () => { + + }) + + it('White Background color', () => { + cy.get('body').should('have.css', 'background-color', 'rgb(250, 250, 250)') + }) + + it('Screen is visible', () => { + cy.get('body').should('be.visible') + }) + + it('Magic Button is visible', () => { + cy.get('.magic').should('be.visible') + }) + + it('Magic Button is clickable', () => { + cy.get('.magic').should('be.visible').click() + }) + + it('Small Boxes are visible on the screen', () => { + cy.get('.boxes').should('be.visible') + }) + + it('Magic button when clicked, the boxes merge into one box', () => { + cy.get('.magic').should('be.visible').click() + cy.get('.box').should('be.visible') + }) + + context('Magic Button toggle', () => { + before(() => { + cy.visit('http://127.0.0.1:5500/3d-boxes-background/') + cy.get('.magic').should('be.visible').click() + cy.get('.box').should('be.visible') + + }) + + it('If Magic button is toggled, then the box changes to small boxes', () => { + cy.get('.magic').should('be.visible').click() + cy.get('.boxes').should('be.visible') + }) + }) + +}) \ No newline at end of file diff --git a/3d-boxes-background/cypress/fixtures/example.json b/3d-boxes-background/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/3d-boxes-background/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/3d-boxes-background/cypress/support/commands.js b/3d-boxes-background/cypress/support/commands.js new file mode 100644 index 0000000..66ea16e --- /dev/null +++ b/3d-boxes-background/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) \ No newline at end of file diff --git a/3d-boxes-background/cypress/support/e2e.js b/3d-boxes-background/cypress/support/e2e.js new file mode 100644 index 0000000..0e7290a --- /dev/null +++ b/3d-boxes-background/cypress/support/e2e.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') \ No newline at end of file diff --git a/3d-boxes-background/selenium/backgroundcolor.py b/3d-boxes-background/selenium/backgroundcolor.py new file mode 100644 index 0000000..e5232a1 --- /dev/null +++ b/3d-boxes-background/selenium/backgroundcolor.py @@ -0,0 +1,28 @@ +from selenium import webdriver +import time +from selenium.webdriver.chrome.service import Service +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.chrome.options import Options + +# Define Chrome WebDriver options +chrome_options = Options() +# chrome_options.add_argument("--headless") # Run headless if needed +service = Service('/Users/mac005/Downloads/chromedriver-mac-arm64/chromedriver') + +# Initialize Chrome WebDriver +driver = webdriver.Chrome(service=service, options=chrome_options) + +# Open Google +driver.get('http://127.0.0.1:5500/3d-boxes-background') + +element = driver.find_element(By.TAG_NAME, 'body') + +# Get the CSS value for the 'background-color' property of the element +background_color = element.value_of_css_property('background-color') + +time.sleep(5) + +print('The color is: ', background_color) + +driver.quit() \ No newline at end of file diff --git a/3d-boxes-background/selenium/demo.py b/3d-boxes-background/selenium/demo.py new file mode 100644 index 0000000..89599d3 --- /dev/null +++ b/3d-boxes-background/selenium/demo.py @@ -0,0 +1,32 @@ +from selenium import webdriver +from selenium.webdriver.chrome.service import Service +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.chrome.options import Options + +# Define Chrome WebDriver options +chrome_options = Options() +# chrome_options.add_argument("--headless") # Run headless if needed +service = Service('/Users/mac005/Downloads/chromedriver-mac-arm64/chromedriver') + +# Initialize Chrome WebDriver +driver = webdriver.Chrome(service=service, options=chrome_options) + +# Open Google +driver.get('https://www.google.com') + +# Find the search bar by name attribute (assuming the name is 'q') +search_box = driver.find_element(By.NAME, 'q') + +# Enter a search query and submit +search_box.send_keys('Selenium WebDriver') +search_box.send_keys(Keys.RETURN) + +# Wait for results (not necessary in this case, but useful for pages with dynamic content) +driver.implicitly_wait(10) # 5 seconds + +# Perform Assertions (for example, check the title of the search results page) +assert 'Selenium WebDriver' in driver.title + +# Close the browser +driver.quit() diff --git a/3d-boxes-background/selenium/homepage.py b/3d-boxes-background/selenium/homepage.py new file mode 100644 index 0000000..2ea8828 --- /dev/null +++ b/3d-boxes-background/selenium/homepage.py @@ -0,0 +1,21 @@ +from selenium import webdriver +import time +from selenium.webdriver.chrome.service import Service +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.chrome.options import Options + +# Define Chrome WebDriver options +chrome_options = Options() +# chrome_options.add_argument("--headless") # Run headless if needed +service = Service('/Users/mac005/Downloads/chromedriver-mac-arm64/chromedriver') + +# Initialize Chrome WebDriver +driver = webdriver.Chrome(service=service, options=chrome_options) + +# Open Google +driver.get('http://127.0.0.1:5500/3d-boxes-background') + +time.sleep(5) + +driver.quit() \ No newline at end of file diff --git a/3d-boxes-background/selenium/magicbutton.py b/3d-boxes-background/selenium/magicbutton.py new file mode 100644 index 0000000..53f9b99 --- /dev/null +++ b/3d-boxes-background/selenium/magicbutton.py @@ -0,0 +1,32 @@ +from selenium import webdriver +import time +from selenium.webdriver.chrome.service import Service +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.chrome.options import Options + +# Define Chrome WebDriver options +chrome_options = Options() +# chrome_options.add_argument("--headless") # Run headless if needed +service = Service('/Users/mac005/Downloads/chromedriver-mac-arm64/chromedriver') + +# Initialize Chrome WebDriver +driver = webdriver.Chrome(service=service, options=chrome_options) + +# Open Google +driver.get('http://127.0.0.1:5500/3d-boxes-background') + +element = driver.find_element(By.CLASS_NAME, 'magic').click() + +bigbox = driver.find_element(By.CLASS_NAME, 'box') + +time.sleep(2) + +element = driver.find_element(By.CLASS_NAME, 'magic').click() + +bigbox = driver.find_element(By.ID, 'boxes') + +time.sleep(5) + +print('The button has been clicked successfully.') +driver.quit() \ No newline at end of file diff --git a/3d-boxes-background/selenium/magicbuttoncolor.py b/3d-boxes-background/selenium/magicbuttoncolor.py new file mode 100644 index 0000000..3b921de --- /dev/null +++ b/3d-boxes-background/selenium/magicbuttoncolor.py @@ -0,0 +1,37 @@ +from selenium import webdriver +import time +from selenium.webdriver.chrome.service import Service +from selenium.webdriver.common.by import By +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.chrome.options import Options + +# Define Chrome WebDriver options +chrome_options = Options() +# chrome_options.add_argument("--headless") # Run headless if needed +service = Service('/Users/mac005/Downloads/chromedriver-mac-arm64/chromedriver') + +# Initialize Chrome WebDriver +driver = webdriver.Chrome(service=service, options=chrome_options) + +# Open Google +driver.get('http://127.0.0.1:5500/3d-boxes-background') + +element = driver.find_element(By.CLASS_NAME, 'magic') + +# Color of the button +btncolor = element.value_of_css_property('background-color') + +# Box shadow color of the button +btnboxshadowcolor = element.value_of_css_property('box-shadow') + +# Color of the text +textcolor = element.value_of_css_property('color') + +time.sleep(3) + +print('The color of the button is: ', btncolor) +print('The box shadow color of the button is: ', btnboxshadowcolor) +print('The text color of the button text is: ', textcolor) + + +driver.quit() \ No newline at end of file diff --git a/_project_starter_/cypress.config.js b/_project_starter_/cypress.config.js new file mode 100644 index 0000000..97f47c4 --- /dev/null +++ b/_project_starter_/cypress.config.js @@ -0,0 +1,9 @@ +const { defineConfig } = require("cypress"); + +module.exports = defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, +}); diff --git a/_project_starter_/cypress/e2e/test1.spec.cy.js b/_project_starter_/cypress/e2e/test1.spec.cy.js new file mode 100644 index 0000000..deb9a39 --- /dev/null +++ b/_project_starter_/cypress/e2e/test1.spec.cy.js @@ -0,0 +1,23 @@ +describe('Project 1: Project Starter', () => { + + beforeEach(() => { + cy.visit('http://127.0.0.1:5500/_project_starter_/') + }) + + it('Opens the Home Page', () => { + + }) + + it('White Background color', () => { + cy.get('body').should('have.css', 'background-color', 'rgba(0, 0, 0, 0)') + }) + + it('Screen is visible', () => { + cy.get('body').should('be.visible') + }) + + it('Text is visible', () => { + cy.get('h1').should('have.text', 'Project Starter') + }) + +}) \ No newline at end of file diff --git a/_project_starter_/cypress/fixtures/example.json b/_project_starter_/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/_project_starter_/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/_project_starter_/cypress/support/commands.js b/_project_starter_/cypress/support/commands.js new file mode 100644 index 0000000..66ea16e --- /dev/null +++ b/_project_starter_/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) \ No newline at end of file diff --git a/_project_starter_/cypress/support/e2e.js b/_project_starter_/cypress/support/e2e.js new file mode 100644 index 0000000..0e7290a --- /dev/null +++ b/_project_starter_/cypress/support/e2e.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') \ No newline at end of file diff --git a/_project_starter_/index.html b/_project_starter_/index.html index 4783501..7f7705b 100644 --- a/_project_starter_/index.html +++ b/_project_starter_/index.html @@ -8,6 +8,6 @@

Project Starter

- +