50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
"""Tests for extract.* commands (require an http/https active tab)."""
|
|
import pytest
|
|
from browser_cli.client import send_command
|
|
|
|
|
|
def test_extract_links(browser, http_tab):
|
|
browser("tabs.active", {"tabId": http_tab["id"]})
|
|
links = browser("extract.links")
|
|
assert isinstance(links, list)
|
|
for lnk in links:
|
|
assert "href" in lnk
|
|
assert "text" in lnk
|
|
|
|
|
|
def test_extract_images(browser, http_tab):
|
|
browser("tabs.active", {"tabId": http_tab["id"]})
|
|
images = browser("extract.images")
|
|
assert isinstance(images, list)
|
|
for img in images:
|
|
assert "src" in img
|
|
assert img["src"] != ""
|
|
|
|
|
|
def test_extract_text(browser, http_tab):
|
|
browser("tabs.active", {"tabId": http_tab["id"]})
|
|
text = browser("extract.text")
|
|
assert isinstance(text, str)
|
|
assert len(text) > 0
|
|
|
|
|
|
def test_extract_html(browser, http_tab):
|
|
browser("tabs.active", {"tabId": http_tab["id"]})
|
|
html = browser("extract.html")
|
|
assert isinstance(html, str)
|
|
assert "<" in html
|
|
|
|
|
|
def test_dom_exists(browser, http_tab):
|
|
browser("tabs.active", {"tabId": http_tab["id"]})
|
|
result = browser("dom.exists", {"selector": "body"})
|
|
assert result is True
|
|
|
|
|
|
def test_dom_query(browser, http_tab):
|
|
browser("tabs.active", {"tabId": http_tab["id"]})
|
|
elements = browser("dom.query", {"selector": "body"})
|
|
assert isinstance(elements, list)
|
|
assert len(elements) > 0
|
|
assert elements[0].get("tag") == "body"
|