selenium用例编写

selenium测试文档:

image-20210615174512759

用例的关键元素

  • 导入依赖

  • 创建driver

  • 执行自动化步骤

  • 断言


编写的selenium用例要求:

​ 1、打开页面https://testerhome.com/

​ 2、点击 - 社团 标签

​ 3、点击 - 求职面试圈

​ 4、访问顶部的第一个帖子

实例操作:

通过Firefox的selenium IDE方式,找到“社团”的几种定位器

Firefox的selenium IDE -----打开http://testerhome.com网页,点击“社团”标签---------停止Record

查看link方式:

image-20210615193944659

由于点击事件依赖于js操作,所以我们必须给其足够的等待时间,让页面将 js, css···加载完成

一个页面还没有完全加载,点击这个元素,会发现这个元素是有问题的,元素找不到,或者不可点击等问题。此时,可以强行加sleep【但是,不推荐:因为每个事件的加载时间不同】

from selenium import webdriver
from time import sleep

class TestHogwarts():

    """由于本文件使用pytest框架编写测试用例,所以需要写上setup和teardown"""
    def setup(self):
        # 没有将Firefox的geckodriver路径放入path环境变量中时,需要传入它的绝对路径
        self.driver = webdriver.Firefox(executable_path="D:/FirefoxDriver-test/geckodriver.exe")   #driver初始化
        self.driver.maximize_window()    # 窗口最大化
        pass
    def teardown(self):
        self.driver.quit()  #资源回收,页面会自动关闭
        pass

   
    def test_hogwarts(self):
        self.driver.get("http://testerhome.com")
        sleep(1)
        #通过Firefox的selenium IDE方式,找到“社团”的几种定位器
        self.driver.find_element_by_link_text("社团").click()
       	sleep(1)
        #获取定位器: 点击“求职面试圈”,
        self.driver.find_element_by_link_text("求职面试圈").click()
        sleep(1)
        # 点击第一条话题
        self.driver.find_elements_by_css_selector(".topic-29703 .title > a")
        sleep(1)

每个元素定位时,都会去find_element查找一个元素。但是,不同元素的查找时间可能不同。也就是加载时间不同。对于这种情况,我们可以给一个动态等待时间。

这里设置:隐式等待(动态)5秒;如果在<5秒的时间内加载完成,则立即向下操作,不需要等够5秒;

from selenium import webdriver
from time import sleep

class TestHogwarts():

    """由于本文件使用pytest框架编写测试用例,所以需要写上setup和teardown"""
    def setup(self):
        # 没有将Firefox的geckodriver路径放入path环境变量中时,需要传入它的绝对路径
        self.driver = webdriver.Firefox(executable_path="D:/FirefoxDriver-test/geckodriver.exe")   #driver初始化
        self.driver.maximize_window()    # 窗口最大化
        """
        由于每个操作的反应时间不同,我们可以让其动态等待
        这里设置:隐式等待(动态)5秒;如果在<5秒的时间内加载完成,则立即向下操作,不需要等够5秒;
        """
        self.driver.implicitly_wait(5)  #隐式等待(可以简化代码)
        pass
    def teardown(self):
        self.driver.quit()  #资源回收,页面会自动关闭
        pass

    def test_hogwarts(self):
        self.driver.get("http://testerhome.com")
        #通过Firefox的selenium IDE方式,找到“社团”的几种定位器
        self.driver.find_element_by_link_text("社团").click()
        #获取定位器: 点击“求职面试圈”,
        self.driver.find_element_by_link_text("求职面试圈").click()
        # 访问第一条话题
        self.driver.find_elements_by_css_selector(".topic-29703 .title > a")
posted @ 2021-06-17 22:17  甜梦午  阅读(149)  评论(0)    收藏  举报