weather天气网selenium脚本

1.做自动化脚本前先了解如何安装selenium ,1.pip install selenium -U 安装最新版本  

1.1.firefox 47+selenium 3.13.0+geckodriver 0.15.0  selenium3.0.0+大于firefox47.0.0

1.2.chrome 63+selenium 3.13.0+ chromedriver 2.37  selenium2.0.0+小于firefox47.0.0

1.3 如果pip 命令执行不了说明Python没有安装setuptools,pip插件 ,下载setuptools,pip解压在dos命令中分别进入文件目录执行setup.py(python setup.py Install)安装pip,setuptools ,注意要先安装setuptools。

2.将火狐浏览器的驱动导入 C:\Users\THINK\AppData\Local\Programs\Python\Python37 安装目录

3.讲测试报告HTMLTestRunner.py 第三包导入到 C:\Users\THINK\AppData\Local\Programs\Python\Python37\Lib目录

4.记住如下重点命令

  • find_element_by_id()//通过id查找, find_element_by_class_name(),
  • find_element_by_tag_name(),find_element_by_link_test(),find_element_by_partial_link_text(),find_element_by_xpath()
  • context_click() 右击点击 , move_to_element() 悬浮元素 ,drag_and_drop() 拖动元素,click_and_hold()左键点击
  • double_click() 双击事件, 鼠标事件都是在selenium.webdriver.common.action_chains 包下
  • senk_keys(Keys.ENTER) 返回, send_keys(Keys.BACK_SPACE) 删除 ,send_keys(Keys.TAB)制表,send_keys(Keys.SPACE) 空格 ,send_keys(Keys.CONTROL,'a') 全选  鼠标事件在 selenium.webdriver.common.keys包中
  • browser.title 获得当前浏览器标题,browser.current_url 获得当前浏览器
  • browser.swich_to.window(browser.window_handles[len(browser.window_handles)-1]) 切换流浪器句柄
  • browser.swich_to_alert() 切换alert警告框,
  • js="var q=document.documentElement.scrollTop=1000"    browser.execute__script(js)  长度条
  • browser.get_screentshot_as_file("D:\\wej.png")获取当前页面快照
  • WebDriverWait(browser,10,).until(lambda x:x.find_element_by_id()) 显现隐藏
  • browser.implicitly_wait(30) 隐式等待
  • 注意HTMLTestRunner 版本是否是最新的Python 3.7 与 2.7版本不一致
from selenium import  webdriver
from selenium.webdriver.support.ui import WebDriverWait
import time
import unittest
class chinaF(unittest.TestCase):
    def setUp(self):
        self.browser=webdriver.Firefox() #启动浏览器
        self.browser.get("http://www.weather.com.cn/") #启动网页
    def test_y(self):
        browser=self.browser
        browser.find_element_by_link_text(u"预报").click()
        time.sleep(3)
        browser.switch_to.window(browser.window_handles[len(browser.window_handles) - 1])
        if browser.current_url !="http://www.weather.com.cn/":
            print("跳转成功")
        else :
            raise NameError("未跳转成功")

    def test_k(self):
        browser = self.browser
        browser.find_element_by_link_text(u"预警").click()
        time.sleep(3)
        browser.switch_to.window(browser.window_handles[len(browser.window_handles) - 1])
        if browser.current_url != "http://www.weather.com.cn/":
            print("跳转成功")
        else:
            raise NameError("未跳转成功")

    def test_l(self):
        browser = self.browser
        browser.find_element_by_link_text(u"临近预报").click()
        time.sleep(3)
        browser.switch_to.window(browser.window_handles[len(browser.window_handles) - 1])
        if browser.current_url != "http://www.weather.com.cn/":
            print("跳转成功")
        else:
            raise NameError("未跳转成功")
    def tearDown(self):
         self.browser.quit()
class chinalogin(unittest.TestCase):
      def setUp(self):
          self.browser=webdriver.Firefox()
          self.browser.get("http://www.weather.com.cn/")
      def test_truelogin(self):
          browser=self.browser
          url = browser.current_url
          elementclick= WebDriverWait(browser,10,).until(lambda a:a.find_element_by_class_name("login-icon"))
          elementclick.click()
          time.sleep(3)
          browser.switch_to.window(browser.window_handles[len(browser.window_handles)-1])
          if browser.current_url !=url:
             user=WebDriverWait(browser,10,).until(lambda a:a.find_element_by_id("username"))
             user.send_keys("egsdfgdsfg123123123")
             browser.find_element_by_id("password").send_keys("helloword")
             loginurl=browser.current_url
             time.sleep(5)
             for i in range(0,3):
              browser.find_element_by_id("loginBtnId").click()
             yanzhengele=WebDriverWait(browser,10,).until(lambda a:a.find_element_by_id('kaptcha'))
             yanzhengele.send_keys("8888")
             browser.find_element_by_id("loginBtnId").click()
             browser.switch_to.window(browser.window_handles[len(browser.window_handles) - 1])
             if loginurl !=browser.current_url:
                 print("登录成功")
             else:
                 raise NameError("Error登录失败")
          else:
              raise NameError("跳转登录页面失败")



      def tearDown(self):
          self.browser.quit()


if __name__=="__mian__":
    suite=unittest.TestSuite()
    suite.addTest(unittest.makeSuite(seleniumDemo05.chinalogin))
    lists=["123456789","abcdefghijklmn"]
    f=r"D:\pywork\\"+str(random.choice(lists[0]))+""+random.choice(lists[1])+".html"
    runner=HTMLTestRunner.HTMLTestRunner(
      stream=open(f,"wb"),
      title=u"中国天气网测试报告",
      description=u"用例执行情况"
    )
    runner.run(suite)

猜你喜欢

转载自blog.csdn.net/weixin_40279039/article/details/83544273
今日推荐