class GrphicVideo(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        browser = BrowserEngine(cls)
        cls.driver = browser.open_browser(cls)

    @classmethod
    def tearDownClass(cls):
        cls.driver.close()

    def test_graphic_videoplay(self):

        self.initbase = BasePage(self.driver)
        self.driver.get("https://www.iqiyi.com/v_19rsjaio7k.html")
        time.sleep(10)
        try:
            self.assertTrue("神话" in self.initbase.find_element("s => span.header-link").text)
        except Exception as e:
            logger.error("Fail to play video: %s" % e)
            self.initbase.get_windows_screen()

    def test_graphic_muiscplay(self):

        self.initbase = BasePage(self.driver)
        self.driver.get("https://www.kugou.com/song/#hash=BE6372BA684D2B195FEB691FD8DFC6CC&album_id=528482")
        self.initbase.click('toggle')
        time.sleep(10)
        try:
            self.assertTrue("Five Hundred Miles" in self.initbase.find_element("c => audioName").text)
        except Exception as e:
            logger.error("Fail to play music: %s" % e)
            self.initbase.get_windows_screen()
class WlanConnect(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        browser = BrowserEngine(cls)
        cls.driver = browser.open_browser(cls)

    @classmethod
    def tearDownClass(cls):
        cls.driver.close()

    def test_wlan_login_fail(self):

        wlan_dict={#"miss_username":['','19911992'], "miss_password":['*****@*****.**',''],
                   "incorrect_username":['weix.b.sun.com','19911992'], "incorrect_password":['*****@*****.**','12345678']}
        self.initbase = BasePage(self.driver)
        for key in wlan_dict:
            self.driver.get('https://gia-captiveportal.intel.com/guest/guest_hello_c.php?mac=84:3a:4b:c8:a8:f0&_browser=1')
            self.initbase.type('s => input#ID_form80308bd3_weblogin_username',wlan_dict[key][0])
            self.initbase.type('s => input#ID_form80308bd3_weblogin_password',wlan_dict[key][1])

            js_bottom = "var q=document.documentElement.scrollTop=10000"
            self.driver.execute_script(js_bottom)
            time.sleep(1)

            self.initbase.click('s => input#ID_form80308bd3_weblogin_visitor_accept_terms')
            self.initbase.click('s => input#ID_form80308bd3_weblogin_submit')
            self.initbase.get_windows_screen()
            try:
                if key.find("username"):
                    self.assertTrue('Invalid username' in self.initbase.find_element("ERROR_form39b008c_weblogin_username").text)
                else:
                    self.assertTrue('enter a value' in self.initbase.find_element("ERROR_form39b008c_weblogin_password").text)
            except Exception as e:
                logger.error("No error message was printed: %s" %e)

    def test_wlan_login_pass(self):
        username="******"
        password="******"
        self.initbase = BasePage(self.driver)
        self.driver.get('https://gia-captiveportal.intel.com/guest/guest_hello_c.php?mac=84:3a:4b:c8:a8:f0&_browser=1')
        self.initbase.type('s => input#ID_form80308bd3_weblogin_username',username)
        self.initbase.type('s => input#ID_form80308bd3_weblogin_password',password)

        js_bottom = "var q=document.documentElement.scrollTop=10000"
        self.driver.execute_script(js_bottom)
        time.sleep(1)

        self.initbase.click('s => input#ID_form80308bd3_weblogin_visitor_accept_terms')
        self.initbase.click('s => input#ID_form80308bd3_weblogin_submit')
        self.initbase.get_windows_screen()
        try:
            self.assertTrue('Logging in' in self.initbase.find_element("s => div#content-marker > p").text)
        except Exception as e:
            logger.error("No logging message was printed: %s" %e)
            self.initbase.get_windows_screen()
class WlanDisconnect(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        browser = BrowserEngine(cls)
        cls.driver = browser.open_browser(cls)

    @classmethod
    def tearDownClass(cls):
        cls.driver.close()

    def test_wlan(self):
        self.initbase = BasePage(self.driver)
        self.initbase.click("l => 新闻")
        try:
            self.assertTrue("热点要闻" in self.initbase.find_element(
                's => a[data-control="pane-news"]').text)
        except Exception as e:
            logger.error("Fail to connect wlan: %s" % e)
            self.initbase.get_windows_screen()

    #Please update Wi-Fi by local name
    def test_wlan_Disconnect(self):
        self.initbase = BasePage(self.driver)
        subprocess.check_call("netsh interface set interface Wi-Fi disabled",
                              shell=True)
        self.driver.get("https://wwww.baidu.com")
        try:
            self.assertTrue("No internet" in self.initbase.find_element(
                's => span[jsselect = "heading"]').text)
        except Exception as e:
            logger.error("Fail to disconnect wlan: %s" % e)
            self.initbase.get_windows_screen()
        finally:
            subprocess.check_call(
                "netsh interface set interface Wi-Fi enabled", shell=True)
            time.sleep(10)
 def get_pictures(self, selector):
     file_path = os.path.dirname(os.path.abspath('.')) + '/screenshots/'
     page = BasePage(self.driver)
     page.get_code_img()
     page_snap_obj = Image.open(file_path + 'code.png')
     img = page.find_element(selector)  # 验证码元素位置
     time.sleep(1)
     location = img.location
     size = img.size  # 获取验证码的大小参数
     left = location['x']
     top = location['y']
     right = left + size['width']
     bottom = top + size['height']
     image_obj = page_snap_obj.crop(
         (left, top, right, bottom))  # 按照验证码的长宽,切割验证码
     # image_obj.show()  # 打开切割后的完整验证码
     return image_obj