The Lynx browser is tiny, fast, and supports a good part of modern web pages. It's a great tool for quickly getting a rough idea of what your page looks like.
Example: my Flask app refuses to handle authentication correctly. So, I write a API test to log in to myserver, capture the response, then write it to a server-side HTML file. Next I use Lynx to view it so I can see what it's doing!
Here's my Registration test:
def test_post(client):
"validate page that uses POST"
rv = client.post('/auth/register', data=dict(
email='test@example.com',
username='test',
password='test',
))
if 1:
with open('zoot.html', 'w') as pagef:
pagef.write(rv.data)
Run the test
pytest
Next, use the server-side browser to view my output:
lynx -dump -stdin < zoot.html
Output:
(BUTTON) Toggle navigation [1]test
* [2]Home
* [3]Log In
Register
Email test@example.com____
Username test________________
Password ____________________
Passwords must match.
Confirm password ____________________
This field is required.
Register
Note the "Passwords must match" bit. Ah, there's my bug. In the POST I'd forgotten to send both the password and validating password2 fields. Bug fixed, thanks to Lynx!