51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1946|回复: 4
打印 上一主题 下一主题

求助登录界面弹出警告窗口找不到元素,希望各位各位帮个忙看一下

[复制链接]
  • TA的每日心情
    无聊
    2017-11-18 09:26
  • 签到天数: 41 天

    连续签到: 1 天

    [LV.5]测试团长

    跳转到指定楼层
    1#
    发表于 2017-1-10 09:48:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    # -*- coding: utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException
    from selenium.common.exceptions import NoAlertPresentException
    import unittest, time, re

    class Ets2(unittest.TestCase):
        def setUp(self):
            self.driver = webdriver.Chrome()
            self.driver.implicitly_wait(30)
            self.base_url = "http://etspad.knoocrc.cn"
            self.verificationErrors = []
            self.accept_next_alert = True
       
        def test_ets2(self):
            driver = self.driver
            driver.get(self.base_url)
            driver.maximize_window()
            driver.find_element_by_link_text(u"参与测评").click()
            driver.find_element_by_class_name("btn").click()
            driver.switch_to_alert().accept
            try: self.assertEqual(u"请输手机号码!", driver.find_element_by_css_selector("div.layui-layer-content").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            driver.find_element_by_name("clientMobile").clear()
            driver.find_element_by_name("clientMobile").send_keys("123456")
            driver.find_element_by_class_name("btn").click()
            driver.switch_to_alert().accept
            try: self.assertEqual(u"请输正确的手机号码!", driver.find_element_by_css_selector("div.layui-layer-content").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            driver.find_element_by_name("clientMobile").clear()
            driver.find_element_by_name("clientMobile").send_keys("13000000029")
            driver.find_element_by_class_name("btn").click()
            driver.switch_to_alert().accept
            try: self.assertEqual(u"请输入姓名!", driver.find_element_by_xpath("//*[@id='layui-layer10']/div[2]").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            driver.find_element_by_name("clientName").clear()
            driver.find_element_by_name("clientName").send_keys("123")
            driver.find_element_by_class_name("btn").click()
            driver.switch_to_alert().accept
            try: self.assertEqual(u"姓名只能为中文!", driver.find_element_by_xpath("//*[@id=1layui-layer11']/div[2]").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            driver.find_element_by_name("clientName").clear()
            driver.find_element_by_name("clientName").send_keys("12@#aas")
            driver.find_element_by_class_name("btn").click()
            driver.switch_to_alert().accept
            try: self.assertEqual(u"姓名只能为中文!", driver.find_element_by_xpath("//*[@id=1layui-layer11']/div[2]").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            driver.find_element_by_name("clientName").clear()
            driver.find_element_by_name("clientName").send_keys(u"啊")
            driver.find_element_by_class_name("btn").click()
            driver.switch_to_alert().accept
            try: self.assertEqual(u"输入的姓名长度不能小于2!", driver.find_element_by_xpath("//*[@id='layui-layer12']/div[2]").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            driver.find_element_by_name("clientName").clear()
            driver.find_element_by_name("clientName").send_keys(u"啊少时诵诗书")
            driver.find_element_by_class_name("btn").click()
            driver.switch_to_alert().accept
            try: self.assertEqual(u"输入的姓名长度不能超过5!", driver.find_element_by_xpath("//*[@id='layui-layer13']/div[2]").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            driver.find_element_by_name("clientName").clear()
            driver.find_element_by_name("clientName").send_keys(u"少时诵诗书")
       
        def is_element_present(self, how, what):
            try: self.driver.find_element(by=how, value=what)
            except NoSuchElementException as e: return False
            return True
       
        def is_alert_present(self):
            try: self.driver.switch_to_alert()
            except NoAlertPresentException as e: return False
            return True
       
        def close_alert_and_get_its_text(self):
            try:
                alert = self.driver.switch_to_alert()
                alert_text = alert.text
                if self.accept_next_alert:
                    alert.accept()
                else:
                    alert.dismiss()
                return alert_text
            finally: self.accept_next_alert = True
       
        def tearDown(self):
            self.driver.quit()
            

    if __name__ == "__main__":
        unittest.main()
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2017-11-18 09:26
  • 签到天数: 41 天

    连续签到: 1 天

    [LV.5]测试团长

    3#
     楼主| 发表于 2017-1-10 10:22:30 | 只看该作者
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-11-7 16:44
  • 签到天数: 290 天

    连续签到: 1 天

    [LV.8]测试军长

    4#
    发表于 2017-1-10 11:32:15 | 只看该作者
    你的脚本没啥问题,主要是网页上有bug。
    另外还是建议你的脚本适当加些等待时间和注释。

    # -*- coding: utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException
    from selenium.common.exceptions import NoAlertPresentException
    import unittest, time, re

    class Ets2(unittest.TestCase):
        def setUp(self):
            self.driver = webdriver.Firefox()
            self.driver.implicitly_wait(30)
            self.base_url = "http://etspad.knoocrc.cn"
            self.verificationErrors = []
            self.accept_next_alert = True
       
        def test_ets2(self):
            #打开测试网页
            driver = self.driver
            driver.get(self.base_url)
            driver.maximize_window()
            driver.find_element_by_link_text(u"参与测评").click()
            driver.find_element_by_class_name("btn").click()

            #测试两者不输入时,提示信息:请输手机号码
            try: self.assertEqual(u"请输手机号码!", driver.find_element_by_css_selector("div.layui-layer-content").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            time.sleep(3)

            #测试输入非法的手机号,提示信息:请输正确的手机号码
            driver.find_element_by_name("clientMobile").clear()
            driver.find_element_by_name("clientMobile").send_keys("123456")
            driver.find_element_by_class_name("btn").click()
            try: self.assertEqual(u"请输正确的手机号码!", driver.find_element_by_css_selector("div.layui-layer-content").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            time.sleep(3)

            #测试输入正确的手机号码,不输入姓名,提示信息:请输入姓名!
            driver.find_element_by_name("clientMobile").clear()
            driver.find_element_by_name("clientMobile").send_keys("13000000029")
            driver.find_element_by_class_name("btn").click()
            time.sleep(2)
            #这里有个bug:需要点击两次才提交     
            driver.find_element_by_class_name("btn").click()
            try: self.assertEqual(u"请输入姓名!", driver.find_element_by_xpath("//*[@class='layui-layer-content']").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            time.sleep(3)

            #测试输入非法姓名,场景1,提示信息: 姓名只能为中文!      
            driver.find_element_by_name("clientName").clear()
            driver.find_element_by_name("clientName").send_keys("123")
            driver.find_element_by_class_name("btn").click()
            time.sleep(2)
            driver.find_element_by_class_name("btn").click()
            try: self.assertEqual(u"姓名只能为中文!", driver.find_element_by_xpath("//*[@class='layui-layer-content']").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            time.sleep(3)

            #测试输入非法姓名,场景2,提示信息: 姓名只能为中文!         
            driver.find_element_by_name("clientName").clear()
            driver.find_element_by_name("clientName").send_keys("12@#aas")
            driver.find_element_by_class_name("btn").click()
            time.sleep(2)
            driver.find_element_by_class_name("btn").click()
            try: self.assertEqual(u"姓名只能为中文!", driver.find_element_by_xpath("//*[@class='layui-layer-content']").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            time.sleep(3)


            #测试输入姓名的长度,小于2,提示信息:输入的姓名长度不能小于2!
            driver.find_element_by_name("clientName").clear()
            driver.find_element_by_name("clientName").send_keys(u"啊")
            driver.find_element_by_class_name("btn").click()
            time.sleep(2)
            driver.find_element_by_class_name("btn").click()
            try: self.assertEqual(u"输入的姓名长度不能小于2!", driver.find_element_by_xpath("//*[@class='layui-layer-content']").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            time.sleep(3)


            #测试输入姓名的长度,大于5,提示信息:输入的姓名长度不能超过5!
            driver.find_element_by_name("clientName").clear()
            driver.find_element_by_name("clientName").send_keys(u"啊少时诵诗书")
            driver.find_element_by_class_name("btn").click()
            time.sleep(2)
            driver.find_element_by_class_name("btn").click()
            try: self.assertEqual(u"输入的姓名长度不能超过5!", driver.find_element_by_xpath("//*[@class='layui-layer-content']").text)
            except AssertionError as e: self.verificationErrors.append(e)
            driver.find_element_by_class_name("layui-layer-btn0").click()
            time.sleep(3)        


            #测试..........
            driver.find_element_by_name("clientName").clear()
       
        def is_element_present(self, how, what):
            try: self.driver.find_element(by=how, value=what)
            except NoSuchElementException as e: return False
            return True
       
        def is_alert_present(self):
            try: self.driver.switch_to_alert()
            except NoAlertPresentException as e: return False
            return True
       
        def close_alert_and_get_its_text(self):
            try:
                alert = self.driver.switch_to_alert()
                alert_text = alert.text
                if self.accept_next_alert:
                    alert.accept()
                else:
                    alert.dismiss()
                return alert_text
            finally: self.accept_next_alert = True
       
        def tearDown(self):
            self.driver.quit()
            

    if __name__ == "__main__":
        unittest.main()

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-11-18 09:26
  • 签到天数: 41 天

    连续签到: 1 天

    [LV.5]测试团长

    5#
     楼主| 发表于 2017-1-10 13:20:24 | 只看该作者
    若尘_51 发表于 2017-1-10 11:32
    你的脚本没啥问题,主要是网页上有bug。
    另外还是建议你的脚本适当加些等待时间和注释。

    谢谢,非常感谢
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-17 11:01 , Processed in 0.066914 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表