python unittest 判断元素是否存在
python+selenium自动化,针对某些页面可能出现元素缺失的错误想学习unittest 判断元素是否存在
使用self.assertIsNotNone()判断。
编辑代码:
import unittest
from selenium import webdriver
from time import sleep
class Testhello (unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.get('https://www.baidu.com')
self.driver.maximize_window()
sleep(4)
def test_baidu(self):
driver=self.driver
tr=driver.find_element_by_id('kw1')
self.assertIsNotNone(tr)
def tearDown(self):
self.driver.quit()
if __name__=='__main__':
unittest.main()为什么运行的时候提示错误,Message: Unable to locate element: 而不是测试不通过啊?
仔细看看百度的搜索框定位到底是什么 本帖最后由 yhy100 于 2018-5-31 15:59 编辑
我百度到
编辑了两个文件:
baidukw.py:
from time import sleep
from selenium import webdriver
from is_element_exist import isElementExist
from selenium.webdriver.common.by import By
import unittest
class Login (unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.get('http://www.baidu.com')
def test_login(self):
driver=self.driver
dw = (By.ID,"kw")
self.assertTrue(isElementExist(driver,dw))
def tearDown(self):
sleep(3)
self.driver.quit()
if __name__=='__main__':
unittest.main()
is_element_exist.py
def isElementExist(driver,dw):
try:
driver.find_element(dw)
return True
except:
return False
百度搜索框id是kw,预计应该是成功的啊,可是执行结果是False我故意把kw改成k2w,有执行了一遍,结果还是False 这是为什么啊?
页:
[1]