Skip to content

Instantly share code, notes, and snippets.

@samlucax
samlucax / README.md
Created August 3, 2017 20:11 — forked from evandrix/README.md
Headless web browsers

Here are a list of headless browsers that I know about:

  • [HtmlUnit][1] - Java. Custom browser engine. JavaScript support/DOM emulated. Open source.
  • [Ghost][2] - Python only. WebKit-based. Full JavaScript support. Open source.
  • [Twill][3] - Python/command line. Custom browser engine. No JavaScript. Open source.
  • [PhantomJS][4] - Command line/all platforms. WebKit-based. Full JavaScript support. Open source.
  • [Awesomium][5] - C++/.Net/all platforms. Chromium-based. Full JavaScript support. Commercial/free.
  • [SimpleBrowser][6] - .Net 4/C#. Custom browser engine. No JavaScript support. Open source.
  • [ZombieJS][7] - Node.js. Custom browser engine. JavaScript support/emulated DOM. Open source.
  • [EnvJS][8] - JavaScript via Java/Rhino. Custom browser engine. JavaScript support/emulated DOM. Open source.
@samlucax
samlucax / pegandoImagem.java
Created August 21, 2017 16:46
Automatizando validação de códigos de barras com API Zxing
File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
BufferedImage imagem = ImageIO.read(screenshot);
//Se você prefere uma imagem só do trecho onde o código de barras aparece, pode realizar um corte na imagem, da seguinte forma:
//Pegando a posicao do elemento
Point posicao = codigoDeBarras.getLocation();
//Pegando altura e largura do elemento
@samlucax
samlucax / .gitconfig
Last active November 24, 2019 00:19 — forked from diego3g/.gitconfig
Git useful aliases
[alias]
ci = commit
co = checkout
cm = checkout master
cd = checkout develop
cb = checkout -b
st = status -sb
sf = show --name-only
lg = log --pretty=format:'%Cred%h%Creset %C(bold)%cr%Creset %Cgreen<%an>%Creset %s' --max-count=30
incoming = !(git fetch --quiet && git log --pretty=format:'%C(yellow)%h %C(white)- %C(red)%an %C(white)- %C(cyan)%d%Creset %s %C(white)- %ar%Creset' ..@{u})
Given text query =
"""
{
pokemon(name: "Pikachu") {
id
attacks {
special {
name
}
}
Cypress.Commands.add("loggedInAs", uid => {
window.localStorage.setItem("access-token", "jVUfYw92zjFCtGMTZilctw");
window.localStorage.setItem("client", "e_1a0iMA4uG52JMl9f8uog");
window.localStorage.setItem("expiry", "1558352526");
window.localStorage.setItem("token-type", "Bearer");
window.localStorage.setItem("uid", uid);
cy.visit("http://localhost:3001");
});
@samlucax
samlucax / gist:51bfb9cc4fd8f9a57d5bbe3aa1d92fec
Last active May 5, 2020 13:23 — forked from eliasnogueira/gist:5340507
Diferença entre Smoke e Acceptance Test num contexto ágil

by Elias Nogueira

Hoje um colaborador da lista sobre Teste de Software [DFTestes] (http://br.groups.yahoo.com/group/DFTestes/) perguntou em uma thread sobre PhantomJS qual era a difernça entre Smoke Test e Acceptance Test. Ai resolvi responder. Como a lista é somente de acesso aos usuários registrados, estou colocando um resumo, na minha ótica, a diferença entre eles:

Dentro de um contexto ágil nós temos uma separação clara do que é smoke test e o que é teste de aceitação.

  • Smoke Test: conjunto de testes (bem menor do que o conjunto de teste de aceitaçaõ, que vai configurar posteriormente em uma regressão) com o intuito de validar se os pontos maisimportantes da aplicação continuam funcionando após as alterações.

  • Teste de Aceitação: São os testes funcionais que conhecemos. Em um contexto ágil eles são chamados de aceitação ao invés de funcional, pela ótica que adotamos a estes testes, que vão tanto validar a aplicação funcionalmente como validar também da ótica de um usuário (fazer uma venda completa,

- script: 'npm install'
displayName: install
- script: 'npm test'
displayName: test
continueOnError: true
- task: PublishTestResults@2
displayName: 'Publish Test Results **/test*.xml'
// Sugestão de solução enviada por Vinicius Flores no grupo do Cypress Brasil
describe('Should been possible to validate Update Catalog data in Agena plans table', () => {
before(() => {
cy.fixture('IIYOGI-1517.csv').then(plans => {
lines = plans.split('\n')
})
})
beforeEach(() => {
@samlucax
samlucax / square.js
Created August 25, 2020 16:31
LongPress em um quadrado para validar se redimensiona - HammerJS
describe('LongPress no quadrado', () => {
it('LongPress no quadrado', () => {
// acessa o site codepen, para interação com o componente
cy.visit('https://codepen.io/choskim/pen/RLYebL');
// aguarda o frame com o componente ser renderizado (cypress-iframe)
cy.frameLoaded('#result')
// mapeia o elemento dentro de um iframe para a interação
cy.iframe('#result').find('div.square').as('square');
@samlucax
samlucax / .gitignore
Created August 6, 2020 23:35
Semana Agilizei 1.0 - Git Ignore
# dependencias
node_modules/
# relatorios mocha
mochawesome-report
# relatorios cucumber
cypress/reports/index.html
cypress/reports/index.html.json
cypress/reports/cucumber-json/**