yhy100 发表于 2018-5-29 17:15:01

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: 而不是测试不通过啊?

Real_小T 发表于 2018-5-29 21:15:25

仔细看看百度的搜索框定位到底是什么

yhy100 发表于 2018-5-30 10:42:15

本帖最后由 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]
查看完整版本: python unittest 判断元素是否存在