<commit_before># MasterQA (SeleniumBase Hybrid Mode)

MasterQA combines web automation with manual verification to greatly improve QA productivity.

![](http://cdn2.hubspot.net/hubfs/100006/images/hybrid_screen.png "MasterQA")

### Install SeleniumBase and run the example test:
```bash
git clone https://github.com/mdmintz/SeleniumBase.git

cd SeleniumBase

pip install -r requirements.txt

python setup.py install

cd examples

nosetests masterqa_test.py --with-selenium
```

(Answer questions when prompted. At the end of your test run, you'll get a report of your test results, with links to log files and screenshots. Add ``--browser=chrome`` to your nosetests run command in order to run the test in Chrome instead of Firefox)

### Follow the [example test](https://github.com/mdmintz/SeleniumBase/blob/master/examples/masterqa_test.py) to write your own tests:

```python
from seleniumbase import MasterQA

class MasterQATests(MasterQA):

    def test_xkcd(self):
        self.open("http://xkcd.com/1512/")
        for i in xrange(4):
            self.click('a[rel="next"]')
        for i in xrange(3):
            self.click('a[rel="prev"]')<commit_msg>Update the MasterQA ReadMe<commit_after># MasterQA (SeleniumBase Hybrid Mode)

## MasterQA combines web automation with manual verification to greatly improve QA productivity.

![](http://cdn2.hubspot.net/hubfs/100006/images/hybrid_screen.png "MasterQA")

### Install SeleniumBase and run the example test:
```bash
git clone https://github.com/mdmintz/SeleniumBase.git

cd SeleniumBase

pip install -r requirements.txt

python setup.py install

cd examples

nosetests masterqa_test.py --with-selenium
```

At the end of your test run, you'll receive a report with results, screenshots, and log files. (Add ``--browser=chrome`` to your run command in order to use Chrome instead of Firefox, which requires Chromedriver installed.)

### Follow the [example test](https://github.com/mdmintz/SeleniumBase/blob/master/examples/masterqa_test.py) to write your own tests:

```python
from seleniumbase import MasterQA

class MasterQATests(MasterQA):

    def test_xkcd(self):
        self.open("http://xkcd.com/1512/")
        for i in xrange(4):
            self.click('a[rel="next"]')
        for i in xrange(3):
            self.click('a[rel="prev"]')
{'fraction_non_alphanumeric': 0.11183355006501951, 'fraction_numerical': 0.011270047680970958, 'mean_word_length': 4.083700440528634, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5540763', 'n_tokens_mistral': 765, 'n_tokens_neox': 694, 'n_words': 227}