zoukankan      html  css  js  c++  java
  • 虫师Selenium2+Python_6、Selenium IDE

    P155——创建测试用例
    1. 录制脚本
    2. 编辑脚本
    3. 定位辅助
    P159——Selenium IDE 命令
    在浏览器中打开URL,可以接受相对路径和绝对路径两种形式
    open
    open(url)
     
    单击链接、按钮、复选框和单选框
    click(elementLocator)
     
    模拟键盘的输入,向指定的input中输入值
    type(inputLocator,value)
     
    根据optionSpecifier选项选择器来选择一个下拉菜单选项
    select(dropDownLocator,optionSpecifier)
     
    模拟单击浏览器的后退按钮
    goBack()
     
    选择一个弹出窗口
    select(windowId)
     
    根据指定时间暂停Selenium脚本执行
    pause(millisenconds)
     
    模拟页面元素事件被激活的处理动作
    fireEvent(elementLocatore,evenName)
     
    模拟单击浏览器关闭按钮
    close
     
    P162——断言与验证
    P167——等待与变量
     
     
    1、启用火狐插件Selenium IDE
    2、点击红点进行脚本录制
    3、使用Selenium IDE导出脚本,选择导出Python语言的脚本
     
    4、在命令行中运行该脚本,报错。这是因为Python文件在第10行没有类名导致
    5、导出脚本的源码如下,添加一个hello类名,再运行
    # -*- coding: utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException
    from selenium.common.exceptions import NoAlertPresentException
    import unittest, time, re
     
    class hello(unittest.TestCase):
    def setUp(self):
    self.driver = webdriver.Firefox()
    self.driver.implicitly_wait(30)
    self.base_url = "https://www.baidu.com/"
    self.verificationErrors = []
    self.accept_next_alert = True
     
    def test_(self):
    driver = self.driver
    driver.get(self.base_url + "/")
    driver.find_element_by_id("kw").click()
    driver.find_element_by_id("kw").clear()
    driver.find_element_by_id("kw").send_keys(u"你好")
    driver.find_element_by_id("su").click()
     
    def is_element_present(self, how, what):
    try: self.driver.find_element(by=how, value=what)
    except NoSuchElementException as e: return False
    return True
     
    def is_alert_present(self):
    try: self.driver.switch_to_alert()
    except NoAlertPresentException as e: return False
    return True
     
    def close_alert_and_get_its_text(self):
    try:
    alert = self.driver.switch_to_alert()
    alert_text = alert.text
    if self.accept_next_alert:
    alert.accept()
    else:
    alert.dismiss()
    return alert_text
    finally: self.accept_next_alert = True
     
    def tearDown(self):
    self.driver.quit()
    self.assertEqual([], self.verificationErrors)
     
    if __name__ == "__main__":
    unittest.main()
    运行成功:
     
     
  • 相关阅读:
    JavaScript算法学习:获取字符串最后一位方法及判断是否以指定字符串开始或结尾
    前端基础知识学习笔记
    JavaScript算法练习:找出字符串中最长的单词并输出其长度
    HTML+CSS学习笔记
    Mint-ui中loadmore(上拉加载下拉刷新)组件在ios中滑动会触发点击事件的解决方法
    JavaScript中的DOM,BOM详细介绍;
    web前端面试题目整理
    Charles https乱码处理
    String类的三个参数的构造方法
    java.net包中的URL类
  • 原文地址:https://www.cnblogs.com/TomBombadil/p/10977809.html
Copyright © 2011-2022 走看看