selenium11-自动化练习读取文件txt

……关于数据以字典方式存储的读取,这个在前面已经练习过了,这次试试 txt格式,感觉也是比较常见的

平时从某处导出或者复制出来的数据文件可能是这样的:

 

#存放帐号和密码的文件 user_list.txt

 帐号 密码 

 1234567890 abcdefg123

 1234567890 abcdefg123

 1234567890 abcdefg123

 1234567890 abcdefg123

 1234567890 abcdefg123

 1234567890 abcdefg123

首行显示此列名称,后面就是一堆数据,导出的时候是不太整齐的,需要手动整理一下,相邻的数据用一个空格隔开,多运行几次用 “_” 替换 “__”就可以了,即 连续两个空格替换成一个空格,循环几次,就整齐了

 

#主要代码模块的文件名 qq_mail_login.py

from selenium import webdriver

import time

from selenium.webdriver.support.ui import WebDriverWait

 

def get_web():  #打开测试的网页

  driver = webdriver.Firefox()

  driver.get('https://mail.qq.com/')

  return driver

 

def get_login(driver):  #打开登录窗

  WebDriverWait(driver, 10).until(lambda driver:driver.find_element_by_xpath('/html/body/div/div[1]/a'))

  driver.switch_to.frame('login_frame')

  driver.find_element_by_id('switcher_plogin').click()

 

def input_login(driver, account, password):  #输入帐号和密码,点击登录

  ele_account = driver.find_element_by_id('u')

  ele_account.clear()

  ele_account.send_keys(account)

  ele_account.send_keys('@qq.com')

  ele_password = driver.find_element_by_id('p')

  ele_password.clear()

  ele_password.send_keys(password)

  driver.find_element_by_xpath('//*[@id="login_button"]').click()

  time.sleep(10)

 

def check_login(driver, account):  #登录后,验证是否登录成功,并报告

  try:

    driver.switch_to.default_content()

    driver.switch_to.frame('mainFrame')

    ele = driver.find_element_by_xpath('/html/body/div[2]/div/ul/li[1]/div[2]/a')

    print('登录账号',account,'成功!')

  except:

    print(account,'登录失败!')

 

if __name__ == "__main__":

  with open('user_list.txt', 'r') as f:  #打开文件

    content = f.readline()  #读取第一行

    while content:

      content = f.readline()  #每此循环读下一行

      info = content.split()  #将一行数据以空格为分隔符,进行分割,得到的作为元素存入列表 info

      if info:  #如果列表不为空,则进行以下操作

        account = info[0]  #列表 info 第一个元素作为 account

        password = info[1]  #列表 info 第二个元素作为 password

        print('账号', account, '正在登录中……')  #开始登录某帐号提示

        driver = get_web()  #打开网页

        get_login(driver)  #打开登陆窗

        input_login(driver, account, password)  #输入帐号和密码,点击登录

        check_login(driver, account)  #验证登录是否成功,并报告

        driver.quit()  #关闭浏览器

        time.sleep(3)  #等待三秒,然后进行下一次循环

posted @ 2019-07-27 11:40  星海问道者  阅读(347)  评论(0编辑  收藏  举报