Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pyautogui para teste automatizado de abertura dos XML e comparação das alterações #29

Merged
merged 1 commit into from
Jun 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions devtools/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# pyautogui Teste de leitura e comparação das diferenças dos XML

Estamos usando a ferramenta [pyautogui](https://pyautogui.readthedocs.io/en/latest/quickstart.html), que é uma ferramenta de automação, para agilizar a abertura de todos os XML resultantes da conversão gerada a partir de `html_to_xml.py`.

Ou seja, obtemos 6 arquivos:

```
# coloquei tudo na pasta /tmp/scielo_tmp
# mkdir /tmp/scielo_tmp
```

Temos:

```
/tmp/scielo_tmp/output_1.xml
/tmp/scielo_tmp/output_2.xml
/tmp/scielo_tmp/output_3.xml
/tmp/scielo_tmp/output_4.xml
/tmp/scielo_tmp/output_5.xml
/tmp/scielo_tmp/output_6.xml
```

## Instalação

Instale digitando

```
pip install pyautogui
```

## Teste de posicionamento do mouse

Dependendo do tamanho do seu monitor você precisará fazer alguns ajustes na posição do mouse, para isso rode o comando:

```python
import pyautogui

pyautogui.position()
```

A partir dai você terá uma noção de ajuste da posição do mouse na sua tela, e **altere o código** com esses ajustes.


## Rodando o teste

Este teste específico, `read_diffchecker_xml_test.py`, requer que você tenha um terminal com opção de divisão de tela, exemplo, Terminator ou Tilix.

* Terminal
* Firefox aberto
* Google-Chrome aberto
* Os arquivos `output_*.xml` já devem existir na pasta `/tmp/scielo_tmp/`

Então rode

```
python read_diffchecker_xml_test.py
```

## Falhas

Este script não é perfeito, e depende de ajustes:

* Depende do seu monitor
* É necessário ajustar a posição do mouse
* Talvez seja necessário clicar em algum ponto da tela que o script não tenha clicado, exemplo, botão "Find Difference" no Chrome.

145 changes: 145 additions & 0 deletions devtools/read_diffchecker_xml_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
"""
Leia o README.md na mesma pasta.
"""

import pyautogui
import time


# pyautogui.position()

pyautogui.hotkey('ctrl', 'shift', 'o')

time.sleep(2)

pyautogui.write('firefox /tmp/scielo_tmp/output_1.xml', interval=0.02)
pyautogui.press('enter')

time.sleep(1)

# click in article minimiza
pyautogui.click(314, 1289)

# seleciona
pyautogui.moveTo(321, 1289)
pyautogui.dragTo(321 + 200, 1289, button='left', duration=0.5)

# clica expande
pyautogui.click(314, 1289)

# copia
pyautogui.hotkey('ctrl', 'c')

# Volta para o terminal
pyautogui.hotkey('alt', 'tab')

pyautogui.write('google-chrome https://www.diffchecker.com/', interval=0.02)
pyautogui.press('enter')

time.sleep(2)

# Clica no lado esquerdo
pyautogui.click(635, 1458)

# Cola
pyautogui.hotkey('ctrl', 'v')

# Volta para o terminal
pyautogui.hotkey('alt', 'tab')

# Abre segundo arquivo
pyautogui.write('firefox /tmp/scielo_tmp/output_2.xml', interval=0.02)
pyautogui.press('enter')

time.sleep(1)

# click in article minimiza
pyautogui.click(314, 1289)

# seleciona
pyautogui.moveTo(321, 1289)
pyautogui.dragTo(321 + 200, 1289, button='left', duration=0.5)

# clica expande
pyautogui.click(314, 1289)

# copia
pyautogui.hotkey('ctrl', 'c')

# Volta para o terminal
pyautogui.keyDown('alt')
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.keyUp('alt')

time.sleep(1)

# Clica no lado direito
pyautogui.click(1580, 1458)

# Cola
pyautogui.hotkey('ctrl', 'v')

# Clica em Find Difference
pyautogui.click(1222, 1663)

# ------------------

# for 3 to 6, porque temos 6 arquivos para serem comparados.

for i in range(3, 7):
# Volta para o terminal
pyautogui.keyDown('alt')
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.keyUp('alt')

pyautogui.write('google-chrome https://www.diffchecker.com/', interval=0.02)
pyautogui.press('enter')

time.sleep(2)

# Clica no lado esquerdo
pyautogui.click(635, 1458)

# Cola
pyautogui.hotkey('ctrl', 'v')

# Volta para o terminal
pyautogui.hotkey('alt', 'tab')

# Abre segundo arquivo
pyautogui.write(f'firefox /tmp/scielo_tmp/output_{i}.xml', interval=0.02)
pyautogui.press('enter')

time.sleep(1)

# click in article minimiza
pyautogui.click(314, 1289)

# seleciona
pyautogui.moveTo(321, 1289)
pyautogui.dragTo(321 + 200, 1289, button='left', duration=0.5)

# clica expande
pyautogui.click(314, 1289)

# copia
pyautogui.hotkey('ctrl', 'c')

# Volta para o terminal
pyautogui.keyDown('alt')
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.keyUp('alt')

time.sleep(1)

# Clica no lado direito
pyautogui.click(1580, 1458)

# Cola
pyautogui.hotkey('ctrl', 'v')

# Clica em Find Difference
pyautogui.click(1222, 1663)