二 编写简单代码

  1. 简单代码一:   demo1.py

1.from selenium import webdriver

  1. driver = webdriver.Chrome()
  2. driver.get("http://baidu.com")
  3. driver.find_element_by_id("kw").send_keys("hello world")
  4. driver.find_element_by_id("su").click()
  5. driver.quit()

以上代码中包含了打开浏览器,打开指定网页.输入内容,点击,和关闭浏览器等操作

此代码存在的问题:

  1. 浏览器没有实现最大化
  2. 如果元素没有出来,则会导致报错(找不到元素)

2.  简单代码二: demo2.py

from selenium import webdriver

driver = webdriver.Chrome()

driver.implicitly_wait(20) #隐式等待20s

driver.maximize_window()  #最大化浏览器

driver.delete_all_cookies() #删除现有的cookie

driver.get("http://baidu.com")

driver.find_element_by_id("kw").send_keys("hello world")

driver.find_element_by_id("su").click()

driver.quit()

以上的代码实现了隐式等待20s(即发现元素则进行,超过20s未发现元素则报错)

3. 登录实现

实现登录的方式有三种:

  1. 使用send_keys的方式,输入用户名和密码
  2. 包含验证码的.可以使用send_keys和PIL(在py2中叫pillow,已经停止更新)的方法
  3. 使用cookie的方式登录(包含验证码的话,建议使用这种方式)
  4. 简单代码Demo4.py(出于隐私内容,cookie部分已经替换),注意:需要服务器端支持使用cookie

import time

from selenium import webdriver

driver = webdriver.Chrome()

driver.maximize_window()  #最大化浏览器

driver.delete_all_cookies() #删除现有的cookie

driver.implicitly_wait(20) #隐式等待20s

driver.delete_all_cookies() #删除现有的cookie

driver.get("http://baidu.com")

driver.add_cookie({'name' : 'BDUSS', 'value' : 'gzn'})

driver.add_cookie({'name' : 'BDORZ', 'value' : 'B49098'})

driver.find_element_by_id("kw").send_keys("hello world")

driver.find_element_by_id("su").click()

driver.quit()

  1. 编写用例函数:

from selenium import webdriver

driver=""

def br():

global driver

driver = webdriver.Chrome()

def test_one():

driver.get("http://baidu.com")

def tear_down():

driver.quit()

if __name__ == '__main__':

br()

test_one()

tear_down()

最新文章

  1. 【随笔】MQTT简介
  2. java守护线程的理解
  3. ModifyInfo.aspx.cs代码
  4. Rational Functional Tester 对象文件(rftdef)合并
  5. NDK(4)"Unresolved inclusion jni.h”的解决方法
  6. 如何停止Android Monkey脚本
  7. Spring MVC体系结构
  8. 利用php获取图片完整Exif信息类 获取图片详细完整信息类
  9. nginx反向代理取得IP地址
  10. dev gridcontrol 单箱效果
  11. JS可维护性代码
  12. 共享---samba
  13. 【T07】不要低估tcp的性能
  14. web框架--MVC、MTV
  15. 各种编译不通过xcode
  16. POJ - 3026 Borg Maze(最小生成树)
  17. [转帖]Kerberos简介
  18. 北京师范大学第十六届程序设计竞赛决赛-重现赛-B题
  19. java线程池相关接口Executor和ExecutorService
  20. 企业级Apache详解2

热门文章

  1. Eclipse中合并GIT分支
  2. pythone 学习笔记(粗略)
  3. 通过页面预加载(preload)提升小程序的响应速度
  4. CF449D Jzzhu and Numbers (状压DP+容斥)
  5. Linux系统下安装 rpm 软件和源代码 软件包
  6. Shell(四)函数
  7. keepalived 和 heartbeat对比
  8. Vue经典开源项目
  9. tp框架表单提交注意!不要提交到当前方法
  10. MVC设计模式与JavaWEB三层架构