微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐