Ejemplo n.º 1
0
 def test4(self):
     b = Browser()
     driver = b.driver
     driver.get("https://the-internet.herokuapp.com/")
     ba = WebDriverWait(driver, 5, 1, (ElementNotVisibleException)).until(
                     EC.presence_of_element_located((By.XPATH, "//*[@id='content']/ul/li[2]/a"))
                 )
     ba.click()
     h = driver.window_handles
     for i in h:
         print(i)
     b.close()
Ejemplo n.º 2
0
    def __init__(self,
                 username=None,
                 password=None,
                 gist_config_url=None,
                 profile=None,
                 cycle_frequency=60):

        # Configure Logging
        logging.basicConfig(level=logging.DEBUG, filename='/dev/stdout')

        if not username or not password:
            logging.critical("OKTA username and password are required.")
            sys.exit(1)
        if not gist_config_url:
            logging.critical("Provided git repo URL is empty.")
            sys.exit(1)

        self.gist = Gistapi(gist_config_url)
        self.username = username
        self.password = password
        self.browser = Browser(self.username, self.password)
        self.num_tabs = 1
        self.client = None
        self.profile = profile
        self.cycle_frequency = cycle_frequency
        self.run_cycle_tab_thread = True
        self.cycle_tab_thread = None
        self.bind_window = None
        self.dashboards = self.gist.get_dashboards(profile)
Ejemplo n.º 3
0
 def test_firefox(self):
     with Browser(browser_name=Browser.FIREFOX, headless=True) as b:
         b.goto("https://the-internet.herokuapp.com/").link(
             "xpath:=//*[@id='content']/ul/li[1]/a").click()
         t = b.element("content").text
         #print(t)
         self.assertTrue("Also known as split testing" in t)
Ejemplo n.º 4
0
 def test_html(self):
     with Browser(browser_name = Browser.CHROME, incognito=True, headless=True) as b:
         b.goto("https://the-internet.herokuapp.com/notification_message_rendered")
         self.assertTrue("The message displayed above the heading is a notification message" in b.html().text)
         rc = b.content(raw=True)
         self.assertTrue(isinstance(rc, bytes))
         self.assertTrue(b.response_encoding == "utf-8")
Ejemplo n.º 5
0
 def test_links(self):
     with Browser() as b:
         h = b.html(url="http://google.com")
         ls = h.elements.links()
         #print(ls)
         self.assertTrue(len(ls) > 0)
         p = h.save()
         self.assertTrue(file_exists(p))
Ejemplo n.º 6
0
 def test_link(self):
     bro = Browser(browser_name=Browser.CHROME, headless=True)
     bro.goto("https://the-internet.herokuapp.com/").link(
         "xpath:=//*[@id='content']/ul/li[1]/a").click()  #phew!
     t = bro.element("content").text
     self.assertTrue("Also known as split testing" in t)
     bro.close()
Ejemplo n.º 7
0
 def test_get_async(self):
     with Browser() as b:
         r = b.get(url="https://api.github.com/users/abranjith/repos",
                   asynch=True)
         while not r.is_request_done:
             print("waiting for get to finish...")
             time.sleep(0.5)
         j = json.loads(r.content)
         self.assertTrue(len(j) > 0)
Ejemplo n.º 8
0
 def test_render(self):
     with Browser() as bro:
         h = bro.html(
             url="https://css-tricks.com/ajax-load-container-contents/")
         h.render()
         e = h.elements.find_by_id('jp-relatedposts')
         d = dict(e.attrib)
         self.assertEqual(d['id'], "jp-relatedposts")
         self.assertEqual(d['class'], "jp-relatedposts")
Ejemplo n.º 9
0
 def test_search1(self):
     with Browser() as b:
         h = b.html(url="http://dollarrupee.in/")
         search_text = "Current USD to INR exchange rate equals {} Rupees per 1 US Dollar"
         result = h.search(search_text, use_text=True)
         rs = []
         if result:
             for r in result:
                 rs.append(r)
         self.assertTrue(len(rs) > 0)
Ejemplo n.º 10
0
 def test5(self):
     with Browser(browser_name=Browser.CHROME, headless=True) as b:
         b.goto("https://www.google.com/")
         b.input("name:=q").enter("india news")
         b.button("name:=btnK").click()
         p = b.take_screenshot()
         print("path ", p)
         t = b.html().elements.links(url_only=True, images=False)
         for a in t:
             print(a)
Ejemplo n.º 11
0
 def test_contents(self):
     bro = Browser(browser_name=Browser.CHROME, headless=True)
     bro.goto("https://httpbin.org/get")
     c = bro.content()
     self.assertTrue(isinstance(c, str) and r"</pre></body></html>" in c)
     rc = bro.content(raw=True)
     self.assertTrue(isinstance(rc, bytes))
     #print(bro.html())  #html
     self.assertTrue(bro.json['url'] == "https://httpbin.org/get")     #json
     self.assertTrue(r"Content-Type" in bro.response_headers)
     self.assertTrue(bro.response_code == 200)
     #print(bro.response_encoding)
     bro.close()
Ejemplo n.º 12
0
 def test_search(self):
     with Browser(browser_name=Browser.CHROME, headless=True) as b:
         h = b.goto("http://dollarrupee.in/").html()
         search_text = "Current USD to INR exchange rate equals {} Rupees per 1 US Dollar"
         result = h.search(search_text)
         rs = []
         if result:
             for r in result:
                 rs.append(r)
         self.assertTrue(len(rs) > 0)
         self.assertTrue("<strong>" in rs[0])
Ejemplo n.º 13
0
 def test_elements(self):
     dp = "C:\\Users\Ranjith\\pybrowser\\browserdrivers"
     with Browser(browser_name=Browser.CHROME,
                  headless=True,
                  driver_path=dp) as b:
         h = b.goto(
             "https://the-internet.herokuapp.com/forgot_password").html()
         e = h.elements.find_by_id('email')
         p = h.save()
         self.assertTrue(file_exists(p))
         self.assertEqual(e.type, "text")
         self.assertEqual(e.name, "email")
Ejemplo n.º 14
0
 def test_searchall_html(self):
     with Browser() as b:
         h = b.html(url="http://chromedriver.chromium.org/downloads")
         #search_text = "Latest Release: ChromeDriver {} "
         search_text = "ChromeDriver {} "
         result = h.search_all(search_text, use_text=True)
         rs = []
         for r in result:
             for d in r:
                 rs.append(d)
         #print(rs)
         self.assertTrue(len(rs) > 1)
Ejemplo n.º 15
0
 def test_ie(self):
     with Browser(browser_name=Browser.IE, headless=True) as b:
         e = b.goto("https://the-internet.herokuapp.com/").link(
             "xpath:=//*[@id='content']/ul/li[1]/a")
         self.assertTrue(e.is_found)
         #print(e.id)
         #print(e.href)
         e.highlight()
         #e.element.send_keys("")
         e.click()
         t = b.element("content").text
         #print(t)
         self.assertTrue("Also known as split testing" in t)
Ejemplo n.º 16
0
 def test_form(self):
     #bro = Browser(Browser.CHROME)
     form_data = [("username", "tomsmith"),
                  ("password", "SuperSecretPassword!")]
     with Browser(browser_name=Browser.CHROME, headless=True) as b:
         b.goto("https://the-internet.herokuapp.com/login")
         b.form("login").fill_and_submit_form(form_data)
         cs = b.cookies
         #print(cs)
         self.assertTrue(len(cs) > 0)
         self.assertTrue("the-internet.herokuapp.com" in cs[0]['domain'])
         self.assertEqual(200, b.response_code)
         t = b.element("flash").text.strip()
         self.assertTrue("You logged into a secure area" in t)
Ejemplo n.º 17
0
 def test_iffound(self):
     with Browser(browser_name=Browser.CHROME, wait_time=1,
                  headless=True) as b:
         b.goto("https://the-internet.herokuapp.com/")
         #no such element
         btn = b.button("byby")
         self.assertFalse(btn.is_found)
         with self.assertRaises(NoSuchElementException):
             btn.is_displayed
         with self.assertRaises(NoSuchElementException):
             btn.is_enabled
         with self.assertRaises(NoSuchElementException):
             btn.is_stale
         self.assertIsNone(btn.if_found.click())
Ejemplo n.º 18
0
 def test_render_script(self):
     with Browser() as bro:
         s = '''() => {
         return {
             width: document.documentElement.clientWidth,
             height: document.documentElement.clientHeight,
             deviceScaleFactor: window.devicePixelRatio,
         }
         }'''
         h = bro.html(url="https://the-internet.herokuapp.com/")
         r = h.render(script=s)
         self.assertTrue(r['width'] > 0)
         self.assertTrue(r['height'] > 0)
         self.assertTrue(r['deviceScaleFactor'] > 0)
Ejemplo n.º 19
0
 def test_sample(self):
     with Browser(browser_name=Browser.CHROME, headless=True) as b:
         b.goto("https://www.google.com/")
         b.refresh()
         b.back()
         b.forward()
         self.assertEqual(200, b.response_code)
         hd = b.response_headers
         #print(hd)
         self.assertTrue("text/html" in hd['Content-Type'])
         b.input("name:=q").enter("news")
         b.button("name:=btnK").click()
         f = b.take_screenshot()
         self.assertTrue(file_exists(f))
         ls = b.html().elements.links()
         self.assertTrue(len(ls) > 0)
Ejemplo n.º 20
0
 def test_cachedprops(self):
     BLANK = ""
     with Browser(browser_name=Browser.FIREFOX, headless=True) as b:
         b.goto("https://the-internet.herokuapp.com/forgot_password")
         btn = b.button("form_submit")
         self.assertTrue(btn.is_found)
         self.assertTrue(btn.is_displayed)
         self.assertTrue(btn.is_enabled)
         self.assertFalse(btn.is_stale)
         #print(btn.action_obj.__dict__)
         self.assertEqual(btn.tag_name, "button")
         self.assertEqual(btn.id, "form_submit")
         self.assertEqual(btn.name, BLANK)
         self.assertEqual(btn.type, "submit")
         self.assertEqual(btn.css_classes, ["radius"])
         self.assertEqual(btn.value, BLANK)
         self.assertEqual(btn.text, "Retrieve password")
         self.assertIsNone(btn.href)
         #print(btn.action_obj.__dict__)
         btn.refresh()
         self.assertEqual(btn.id, "form_submit")
Ejemplo n.º 21
0
 def test_file_download_upload(self):
     with Browser(browser_name=Browser.CHROME, headless=True) as b:
         home_dir = os.getenv('HOME') or os.path.expanduser(
             os.getenv('USERPROFILE'))
         to_dir = os.path.join(home_dir, "tmp")
         fl = "some-file.txt"
         f = os.path.join(to_dir, fl)
         #preset
         if file_exists(f):
             rm_files(f)
         #before
         self.assertFalse(file_exists(f))
         start = datetime.now()
         end = start
         b.goto("https://the-internet.herokuapp.com")
         u = b.link("PARTIAL_LINK_TEXT:=Download").url
         self.assertTrue(u, "https://the-internet.herokuapp.com/download")
         b.link("PARTIAL_LINK_TEXT:=Download").click()
         fd = b.file("PARTIAL_LINK_TEXT:=some-file.txt").download(
             directory=to_dir)
         while not file_exists(f):
             end = datetime.now()
         total_secs = (end - start).total_seconds()
         self.assertTrue(total_secs > 0)
         #wait for callback to happen
         time.sleep(1)
         self.assertTrue(len(fd.downloaded_files) > 0)
         self.assertTrue(fd.is_download_complete)
         b.back()
         u2 = b.link("PARTIAL_LINK_TEXT:=Upload").url
         self.assertTrue(u2, "https://the-internet.herokuapp.com/upload")
         b.link("PARTIAL_LINK_TEXT:=Upload").click()
         b.file("file-upload").upload(filename=f)
         b.button("file-submit").click()
         t = b.element("uploaded-files").text.strip()
         self.assertTrue(t, fl)
Ejemplo n.º 22
0
 def test_get(self):
     with Browser() as b:
         r = b.get(url="https://api.github.com/users/abranjith/repos")
         j = json.loads(r.response.content)
         print(j)
         self.assertTrue(len(j) > 0)
Ejemplo n.º 23
0
 def init_browser(self):
     self.browser = Browser(self.username, self.password)
Ejemplo n.º 24
0
 def test_screenshots(self):
     home_dir = os.getenv('HOME') or os.path.expanduser(
         os.getenv('USERPROFILE'))
     bro = Browser(browser_name=Browser.CHROME, headless=True)
     bro.goto("https://www.google.com/")
     v = bro.button("name:=btnK").name
     self.assertEqual(v, "btnK")
     bro.input("name:=q").enter("sachin")
     bro.button("name:=btnK").click()
     f = bro.take_screenshot()
     self.assertTrue(file_exists(f))
     bro.input("name:=q").enter("virat kohli").submit()
     f = bro.take_screenshot(os.path.join(home_dir, "tmp"))
     self.assertTrue(file_exists(f))
     bro.input("name:=q").enter("ab de villiers").submit()
     f = bro.take_screenshot(os.path.join(home_dir, "tmp"))
     self.assertTrue(file_exists(f))
     bro.input("name:=q").enter("dhoni").submit()
     f = bro.take_screenshot("googly_dhoni")
     self.assertTrue(file_exists(f))
     bro.input("name:=q").enter("ganguly").submit()
     f = bro.take_screenshot("googly_ganguly.png")
     self.assertTrue(file_exists(f))
     bro.close()
Ejemplo n.º 25
0
 def test_onexception(self):
     with Browser(browser_name=Browser.CHROME, headless=True, wait_time=1) as b:
         b.goto("https://the-internet.herokuapp.com/")
         #no such element
         with self.assertRaises(NoSuchElementException):
             b.button("byby").click()
Ejemplo n.º 26
0
 def test_nobrowser(self):
     with Browser() as b:
         h = b.html(url="https://the-internet.herokuapp.com/")
         l = h.elements.links()
         #print(l)
         self.assertTrue(len(l) == 2)
Ejemplo n.º 27
0
 def test_highlight(self):
     with Browser(browser_name=Browser.FIREFOX, headless=True) as b:
         b.goto("https://the-internet.herokuapp.com/login")
         b.input("username").highlight()
         b.input("password").highlight()
         b.button("xpath:=//*[@id='login']/button").highlight()