问题:如何判断是否为弹框?
回答:当在Firefox中进行定位时,鼠标无法定位到弹框及弹框中的元素,就是alert弹框。如果鼠标可以定位到弹框及弹框中的元素,则用普通定位的方法。
当使用普通定位时,有时很难点击到弹框按钮,导致用例失败。下面介绍用js解决无法点击弹框按钮问题:
一、测试场景
输入用户名后,点击提交按钮,弹出“请输入密码”提示框,判断是否正确提示,并关闭弹框。
二、代码编写
文件名称:test_jecnalert.py
import unittest from selenium import webdriver from common.base import Base class TestJecnalert(unittest.TestCase): user = ("name","username") @classmethod def setUpClass(cls): cls.driver = webdriver.Firefox() cls.driver.get("http://www.jecn.com.cn/member/register.php") cls.basealert = Base(cls.driver) @classmethod def tearDownClass(cls): cls.driver.quit() def getresult(self): #点击提交按钮 js = '$(".submit").click()' #执行js self.driver.execute_script(js) #切换到弹窗 al = self.driver.switch_to.alert #获取弹框上的文字 result1=al.text print(result1) #点击确定按钮 al.accept() #返回结果 return result1 def test_01(self): self.basealert.send(self.user,"admin") res = self.getresult() exp = "请输入密码!" self.assertEqual(res,exp) if __name__ == '__main__': unittest.main()
注:base.py 请查看selenium+python自动化测试--登录
三、运行结果