Beispiel #1
0
 def test_show_in_browser(self):
     self.mockReturnedHtmls["http://www.example.com"] = "<html>text</html>"
     with self.patch_http_open():
         browser = pyscrape.Browser()
         browser.goto("http://www.example.com")
         with patch("webbrowser.open"):
             browser.show_in_browser()
Beispiel #2
0
    def test_link(self):
        self.mockReturnedHtmls["http://www.example.com"] = """\
<html>
    <a href="one.html">one</a>
    <a href="two.html">two</a>
</html>
"""
        self.mockReturnedHtmls[
            "http://www.example.com/one.html"] = "<html>one</html>"
        self.mockReturnedHtmls[
            "http://www.example.com/two.html"] = "<html>two</html>"

        with self.patch_http_open():
            browser = pyscrape.Browser()
            browser.goto("http://www.example.com")
            assert len(browser.links) == 2
            browserCopy = browser.duplicate()

            browser.links.get("one").goto()
            assert self.last_request().get_full_url(
            ) == "http://www.example.com/one.html"
            assert browser.page == "<html>one</html>"

            browserCopy.links.get("two").goto()
            assert self.last_request().get_full_url(
            ) == "http://www.example.com/two.html"
            assert browserCopy.page == "<html>two</html>"
Beispiel #3
0
    def test_user_agent(self):
        self.mockReturnedHtmls["http://www.example.com"] = "<html>text</html>"
        with self.patch_http_open():
            browser = pyscrape.Browser(userAgent="momo/1.0")
            browser.goto("http://www.example.com")

        assert self.last_request().headers["User-agent"] == "momo/1.0"
Beispiel #4
0
    def test_frame(self):
        self.mockReturnedHtmls["http://www.example.com"] = """\
<html>
    <frameset cols="25%,75%">
       <frame src="frame_a.htm" />
       <frame src="frame_b.htm" />
    </frameset>
</html>
"""
        self.mockReturnedHtmls[
            "http://www.example.com/frame_a.htm"] = "<html>frame_a</html>"
        self.mockReturnedHtmls[
            "http://www.example.com/frame_b.htm"] = "<html>frame_b</html>"

        with self.patch_http_open():
            browser = pyscrape.Browser()
            browser.goto("http://www.example.com")
            browserCopy = browser.duplicate()
            assert len(browser.frames) == 2

            browser.frames.get("frame_a").goto()
            assert self.last_request().get_full_url(
            ) == "http://www.example.com/frame_a.htm"
            assert browser.page == "<html>frame_a</html>"

            browserCopy.frames.get("frame_b").goto()
            assert self.last_request().get_full_url(
            ) == "http://www.example.com/frame_b.htm"
            assert browserCopy.page == "<html>frame_b</html>"
Beispiel #5
0
    def test(self):
        self.mockReturnedHtmls["http://www.example.com"] = "<html>text</html>"
        with self.patch_http_open():
            browser = pyscrape.Browser()
            browser.goto("http://www.example.com")

        assert "http://www.example.com" == self.last_request().get_full_url()
        assert "pyscrape/1.0" == self.last_request().headers["User-agent"]
        assert browser.page == "<html>text</html>"
Beispiel #6
0
 def test_back(self):
     self.mockReturnedHtmls["http://www.example.com/1"] = "location1"
     self.mockReturnedHtmls["http://www.example.com/2"] = "location2"
     self.mockReturnedHtmls["http://www.example.com/3"] = "location3"
     with self.patch_http_open():
         browser = pyscrape.Browser()
         browser.goto("http://www.example.com/1")
         browser.goto("2")
         assert self.last_request().get_full_url(
         ) == "http://www.example.com/2"
         browser.back()
         assert self.last_request().get_full_url(
         ) == "http://www.example.com/1"
         browser.goto("3")
         assert self.last_request().get_full_url(
         ) == "http://www.example.com/3"
Beispiel #7
0
    def test_form(self):
        self.mockReturnedHtmls["http://www.example.com"] = """\
<html>
    <form id="login" action="login.cgi">
        <input name="username">
        <input name="password">
        <input typ="submit" name="submit" value="done">
    </form>
</html>
"""
        self.mockReturnedHtmls[
            "http://www.example.com/login.cgi"] = "<html>Login OK</html>"

        with self.patch_http_open():
            browser = pyscrape.Browser()
            browser.goto("http://www.example.com")
            form = browser.forms.get("login")
            assert ["username", "password", "submit"] == form.fields.keys()
            form.submit(username="******", password="******")

            assert self.last_request().get_full_url(
            ) == "http://www.example.com/login.cgi"
            assert self.last_request(
            ).data == "username=guest&password=12345678&submit=done"