問題:如何判斷是否為彈框?
回答:當在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自動化測試--登錄
三、運行結果