python+selenium 登录xx网站

1.操作系统是MAC 64bit 自带的python,编码是UTF-8

2.在页面https://pypi.python.org/pypi/selenium 上下载selenium

3.将selenium的压缩包拷贝到python目录下,然后解压

4.更换管理员权限

5.到selenium所在的目录下面

6.运行命令python setup.py install

7.在火狐浏览器下,录制登录

8.selenium IDE的option下选择General 下,勾选 "Enable experiment features"

9.选择format 下选择python2 /unittest /webdriver,代码转换成python语言,命名为login.py

10.在脚本语言的第一行加上 #utf-8

运行python login.py

结果会出现刚刚进行的登录操作


#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
import unittest, time, re

class Login(unittest.TestCase):
   def setUp(self):
       self.driver = webdriver.Firefox()
       self.driver.implicitly_wait(30)
       self.base_url = "http://www.xxxxx.com/"
       self.verificationErrors = []
       self.accept_next_alert = True
   
   def test_login(self):
       driver = self.driver
       driver.get(self.base_url )
       for i in range(60):
           try:
               if u"xxxxxxxxxxxxxxxx" == driver.title: break
           except: pass
           time.sleep(1)
       else: self.fail("time out")
       try: self.assertEqual(u"xxxxxxxxxx", driver.title)
       except AssertionError as e: self.verificationErrors.append(str(e))
       try: self.assertEqual(u"登录", driver.find_element_by_link_text(u"登录").text)
       except AssertionError as e: self.verificationErrors.append(str(e))
       driver.find_element_by_link_text(u"登录").click()
       for i in range(60):
           try:
               if u"登录 - xx" == driver.title: break
           except: pass
           time.sleep(1)
       else: self.fail("time out")
       driver.find_element_by_id("mail").clear()
       driver.find_element_by_id("mail").send_keys("xxxxxx")
       driver.find_element_by_id("pwd").clear()
       driver.find_element_by_id("pwd").send_keys("xxxxxxx")
       driver.find_element_by_css_selector("button.btn-grey.btn-regular").click()
       for i in range(60):
           try:
               if u"xxxxxxx" == driver.title: break
           except: pass
           time.sleep(1)
       else: self.fail("time out")
       for i in range(60):
           try:
               if u"xxxxxxx" == driver.title: break
           except: pass
           time.sleep(1)
       else: self.fail("time out")
       try: self.assertEqual(u"退出", driver.find_element_by_link_text(u"退出").text)
       except AssertionError as e: self.verificationErrors.append(str(e))
       driver.find_element_by_link_text(u"退出").click()
       for i in range(60):
           try:
               if u"首页" == driver.find_element_by_link_text(u"首页").text: break
           except: pass
           time.sleep(1)
       else: self.fail("time out")
   
   def is_element_present(self, how, what):
       try: self.driver.find_element(by=how, value=what)
       except NoSuchElementException, e: return False
       return True
   
   def is_alert_present(self):
       try: self.driver.switch_to_alert()
       except NoAlertPresentException, 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()


转载于:https://my.oschina.net/u/938257/blog/261343

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值