Project

General

Profile

« Previous | Next » 

Revision 3611dd6a

Added by koszko over 1 year ago

facilitate running test environment with Haketilo loaded into browser

View differences:

test/test_integration.py
18 18
# CC0 1.0 Universal License for more details.
19 19

  
20 20
import pytest
21
import re
22 21

  
23
from selenium.webdriver.support.ui import WebDriverWait
24
from selenium.common.exceptions import NoSuchElementException
25

  
26
extract_base_url_re = re.compile(r'^(.*)manifest.json$')
27

  
28
def get_extension_base_url(driver):
29
    """
30
    Extension's internall UUID is not directly exposed in Selenium. Instead, we
31
    can navigate to about:debugging and inspect the manifest URL present there
32
    to get the base url like:
33
        moz-extension://b225c78f-d108-4caa-8406-f38b37d8dee5/
34
    which can then be used to navigate to extension-bundled pages.
35
    """
36
    driver.implicitly_wait(10)
37
    try:
38
        # For newer Firefoxes
39
        driver.get('about:debugging#/runtime/this-firefox')
40
        manifest_link = driver.find_element_by_class_name('qa-manifest-url')
41
    except NoSuchElementException:
42
        driver.get("about:debugging#addons")
43
        manifest_link = driver.find_element_by_class_name('manifest-url')
44
    driver.implicitly_wait(0)
45

  
46
    manifest_url = manifest_link.get_attribute('href')
47
    return extract_base_url_re.match(manifest_url).group(1)
22
from .extension_crafting import get_extension_base_url
48 23

  
49 24
@pytest.mark.usefixtures('haketilo')
50 25
def test_integration(driver):

Also available in: Unified diff