func.py

https://www.cnblogs.com/andy9468/p/10899508.html

main.py中

# 导入webdriver
import os
import time
from lxml import etree from selenium import webdriver
from func import base642str, str2base64 # 将mm隐匿化
# import sys
# print(str2base64("123456"))
# str1_base64="MTIzNDU2"
# print(base642str(str1_base64))
# sys.exit() print('000-正在启用selenium...')
# 调用环境变量指定的PhantomJS浏览器创建浏览器对象
driver = webdriver.Chrome(r'D:\xxx\chromedriver.exe')
print('000-OK') url = 'https://www.xxx.com/login.jsp'
print('111-selenium正在请求页面:%s' % url)
driver.get(url) # get方法请求页面,获取响应
print('111-请求OK') print("打印标题")
print(driver.title)
# print("打印登录页面的代码")
# html = driver.page_source
# print(type(html))
# print(html) print('222-selenium正在填写表单...')
time.sleep(1)
account = "abcdef"
pwd = "MTIzNDU2" input_box1 = driver.find_element_by_xpath("//input[@class='input_username']")
input_box1.send_keys(account)
time.sleep(0.5)
input_box2 = driver.find_element_by_xpath("//input[@class='input_password']")
input_box2.send_keys(base642str(pwd))
print('222-填写表单OK')
time.sleep(2) print('333-selenium提交表单...')
one_click = driver.find_element_by_xpath("//div[@class='button_div_c']")
one_click.click()
print('333-登录成功...') # 浏览器跳转新窗口后,selenium绑定新窗口
print('444-页面跳转后重新绑定selenium.')
time.sleep(3)
search_window = driver.current_window_handle # 此行代码用来定位当前页面
html = driver.page_source
print("444-打印标题")
print(driver.title) print("555-正在打开弹窗黄页...")
workers = driver.find_element_by_xpath("//div[@class='header_menu_item_body']/div[7]")
# workers = driver.find_element_by_id("header_menu_item_body")
print(workers)
workers.click()
time.sleep(3) # 浏览器弹出新窗口后,selenium绑定新窗口
windows = driver.current_window_handle # 定位当前页面句柄
all_handles = driver.window_handles # 获取全部页面句柄
for handle in all_handles: # 遍历全部页面句柄
if handle != windows: # 判断条件
driver.switch_to.window(handle) # 切换到新页面 print("555-打印标题")
print(driver.title) print('666-selenium正在填写表单...')
bd_searchbox = driver.find_element_by_xpath("//input[@class='input_username']")
bd_searchbox.send_keys(account)
time.sleep(0.5)
bd_searchbox = driver.find_element_by_xpath("//input[@class='input_password']")
bd_searchbox.send_keys(base642str(pwd))
print('666-填写表单OK')
time.sleep(3)
print('777-selenium提交表单...')
baidu_click = driver.find_element_by_xpath("//div[@class='login_button_div_c']")
baidu_click.click()
print('777-登录成功2...')

  

案例:selenium实现登录处理弹窗的更多相关文章

  1. selenium模拟登录豆瓣和qq空间

    selenium模拟登录豆瓣和qq空间今天又重新学习了下selenium,模拟登录豆瓣,发现设置等待时间真的是很重要的一步,不然一直报错:selenium.common.exceptions.NoSu ...

  2. Session小案例------完成用户登录

    Session小案例------完成用户登录     在项目开发中,用户登陆功能再平常只是啦,当用户完毕username和password校验后.进入主界面,须要在主界面中显示用户的信息,此时用ses ...

  3. JS网页特效操作流程——下拉菜单列表与登录注册弹窗效果

    下拉菜单列表 <style>        *{            margin: 0px;            padding: 0px;        }        .men ...

  4. 4 使用Selenium模拟登录csdn,取出cookie信息,再用requests.session访问个人中心(保持登录状态)

    代码: # -*- coding: utf-8 -*- """ Created on Fri Jul 13 16:13:52 2018 @author: a " ...

  5. 3 使用selenium模拟登录csdn

    之前通过F12开发者模式调试,获取网站后台服务器验证用户名和密码的URL之后,再构造post数据的方式会存在一个问题,就是对目标网站的验证机制不明确,构造post数据除了用户名和密码之外,还可能有更复 ...

  6. selenium(python)登录时账号密码错误提示语

    selenium(python)登录时账号密码错误提示语的获取 可以用text

  7. Selenium关闭windows系统弹窗

    Selenium关闭windows系统弹窗 背景:在使用某业务时,会弹出windows框 提示要打印某个文本,效果如下,而正常脚本执行完了后,关闭了driver,windows的弹框还是不会消失,这时 ...

  8. 使用Python+Selenium模拟登录QQ空间

    使用Python+Selenium模拟登录QQ空间爬QQ空间之类的页面时大多需要进行登录,研究QQ登录规则的话,得分析大量Javascript的加密解密,这绝对能掉好几斤头发.而现在有了seleniu ...

  9. selenium cookie 登录

    前言 爬虫方向的小伙伴们都知道网页爬虫经常遇到的问题就是登录账户,有些简单的网站我们可以简单的send key来输入账户密码就可以登录,但是有很多网站需要验证码之类的就不太好用了,这时候就体现到了co ...

随机推荐

  1. spark简单文件配置

    cd /usr/local/spark/spark-2.2.1-bin-hadoop2.7/conf cp slaves.template slaves cp spark-env.sh.templat ...

  2. java 利用poi 实现excel合并单元格后出现边框有的消失的解决方法

    使用工具类RegionUtil CellRangeAddress cra = new CellRangeAddress(nowRowCount, nowRowCount + followSize-1, ...

  3. 123457123456#0#-----com.threeapp.renZheDadishu02-----忍者版打地鼠

    com.threeapp.renZheDadishu02-----忍者版打地鼠

  4. (四)java对象的结构和对象的访问定位

    在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header).实例数据(Instance Data)和对齐填充(Padding). 一. 对象头 HotSpot虚拟机的对象 ...

  5. spring security4.1.3配置以及踩过的坑

    https://blog.csdn.net/honghailiang888/article/details/53520557 spring security完全可以作为一个专门的专题来说,有一个专题写 ...

  6. sehll变量比较

    1.比较符号解释 $# 表示提供到shell脚本或者函数的参数总数: $1 表示第一个参数. -ne 表示 不等于 $?是shell变量,表示"最后一次执行命令"的退出状态.0为成 ...

  7. Can't create a new thread (errno 11) 解决办法 mysql无法连接

    问题的现象: 错误信息: ERROR 1135 (00000): Can't create a new thread (errno 11); if you are not out of availab ...

  8. DB2存储过程简单示例

    在这个示例中,我们将在DB2中创建一个名为DEMO1201的存储过程. 该存储过程的输入参数IN_NAME和IN_CREDITCARD,表示用户的姓名和身份证号. 该存储过程的作用是根据身份证号来新建 ...

  9. MariaDB集群配置(主从和多主)

    1.mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从 ...

  10. maven:手动上传jar私服

    转:https://www.jianshu.com/p/b8ec688c388e 打包时提示私服中找不到以下jar包 在私服中搜索确实找不到,后来知道这些是老系统的jar包没有deploy到私服 经分 ...