webdriver的API学习(一)

本文是Selenium Webdriver的入门教程,涵盖了从定位网页元素到控制浏览器行为,包括改变浏览器窗口大小、前进后退操作,以及基本的元素交互和鼠标事件处理。适合Python开发者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、从定位元素开始

driver = webdriver.Firefox()          // 打开火狐
ele = driver.find_element_by_id()   // 定位元素
      driver.find_element_by_name()
      driver.find_element_by_link_text()   // a标签中的文本
      driver.find_element_by_css_selector()    // css的路径
      driver.find_element_by_xpath()    // 通过xpath

二、控制浏览器

1、控制浏览器大小

#控制浏览器的大小
from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://m.mail.10086.cn')

#参数数字为像素点
print('设置浏览器的尺寸,高800,宽480')
driver.set_window_size(480, 800)
driver.quit()

2、控制浏览器前进后退

# 前进和后退页面
from selenium import webdriver
import time

driver = webdriver.Firefox()
#访问百度首页
first_url = 'http://www.baidu.com'
print('now access %s' %(first_url))
driver.get(first_url)
time.sleep(2)

#访问新闻页面
second_url = 'http://news.baidu.com'
print('now access %s' %second_url)
driver.get(second_url)
time.sleep(2)

#返回到百度页面
print("back to %s" %(first_url))
driver.back()
time.sleep(2)

#前进到新闻页
print("forward to %s" %(second_url))
driver.forward()
time.sleep(2)

# 刷新页面
driver.refresh()

driver.quit()

三、基本元素操作

# 元素操作
from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://www.126.com')

# 清除数据
driver.find_element_by_xpath("//input[@name='email']").clear()
# 填入数据
driver.find_element_by_xpath("//input[@name='email']").send_keys('username')
driver.find_element_by_xpath("//input[@name='password']").clear()
driver.find_element_by_xpath("//input[@name='password']").send_keys('password')
# 点击事件
driver.find_element_by_id("dologin").click()

driver.quit()

四、鼠标事件

from selenium import webdriver
# 鼠标事件要引入actionchains,包括右击、双击、悬停、拖动
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Firefox()

driver.get('http://www.w3school.com.cn/index.html')

right = driver.find_element_by_link_text('w3school 在线教程')
# 调动ActionChains类,将驱动driver作为参数传入,
# context_click右击,定位元素
# perform执行
#ActionChains(driver).context_click(right).perform()

# 悬停move_to_element
ActionChains(driver).move_to_element(right).perform()

# 双击
# double_click()
# ActionChains(driver).double_click(right).perform()

# 拖放
# drag_and_drop(原位置,目标位置)
# ActionChains(driver).drag_and_drop(element, target).perform()

五、

# 键盘事件,键盘上的键和组合键
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get('http://www.baidu.com')

# 输入内容
driver.find_element_by_id('kw').send_keys('selenium')

# 删除一个字符==后退
driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)

# 输入空格键和“教程”,连续输入send_keys会合并
driver.find_element_by_id('kw').send_keys(Keys.SPACE)
driver.find_element_by_id('kw').send_keys('教程')

# 输入Ctrl+a全选
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')

# ctrl+x剪切
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x')

# ctrl+v粘贴
driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v')

# 输入回车键代替单击操作
driver.find_element_by_id('su').send_keys(Keys.ENTER)

# F1
# send_keys(Keys.F1)

driver.quit()

 

 

 

 

 

 

 

 

 

 

 

 

1.1 selenium webdriver学习)------------快速开始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 selenium webdriver学习(二)————对浏览器的简单操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 selenium webdriver学习(三)------------执行js脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 selenium webdriver学习(四)------------定位页面元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.5 selenium webdriver学习(五)------------iframe的处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.6 selenium webdriver学习(六)------------如何得到弹出窗口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.7 selenium webdriver学习(七)------------如何处理alert、confirm、prompt对话框 . . . . . . . . .24 1.8 selenium webdriver学习(八)------------如何操作select下拉框 . . . . . . . . . . . . . . . . . . . . . . . . .27 1.9 selenium webdriver学习(九)------------如何操作cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.10 selenium webdriver学习(十)------------如何把个元素拖放到另个元素里面 . . . . . . . . . . .31 1.11 selenium webdriver学习(十)------------如何等待页面元素加载完成 . . . . . . . . . . . . . . . . . .33 1.12 selenium webdriver学习(十二)------------如何利用selenium-webdriver截图 . . . . . . . . . . . .38
Selenium-Webdriver系列教程 Selenium 1.x时代已经远去,它理应躺在历史的角落里,靠着壁炉烤着火,抽着旱烟,在袅袅的升起的青烟中回忆那曾经属于自己的美好时代。 不过事实却并非如此,现今原本早应退役的selenium 1.x却还是多数人坚定的选择,究其原因不过是1.x时代遗留下了大量的文档,代码,教程让人们误以为1.x还是这个年代的主流,还应该光鲜亮丽在前台演出属于它的美好。长江后浪推前浪,最为前浪的selenium 1.x的宿命应该是死在沙滩上。 好了,直入主题,由于开源社区不再维护selenium 1.x再加之更为先进的selenium 2.0确实有不少优势之初可以完全取代1.x,在这里笔者会花些笔墨,若干篇幅,争取深入浅出的讲解selenium 2.0的些基本知识,常用方法和高级扩展,但由于笔者水平和时间精力等确实有限,文中应该避免不了谬误和臆断之处,还望众位读者多多海涵。 本文中所以代码和示例均由Ruby编写,本文介绍的webdriver api也主要是ruby binding。所以首先请确保ruby语言在开发环境上正确安装。 教程的第节从selenium 2.0和webdriver关系说起。 Selenium 2.0 和webdriver之间有什么关系,有什么不可告人的秘密?说来话长,但也简单。Selenium 2.0其实就是webdriver。就像张飞就是张翼德,关羽就是关云长样,叫法不同但内容却是样的。 安装selenium webdriver • 安装ruby1.8.7或1.9.2。注意selenium-webdriver只支持1.8.7以上的ruby版本; • 使用gem安装selenium-webdriver;打开命令行,输入下列代码完成安装。注意,如果你的开发环境需要http proxy的话,请注意在gem命令中加入--http_proxy参数; gem install selenium-webdriver [--http_proxy] • 在命令行中输入gem list,如果selenium-webdriver正确安装,则其应该出现在结果列表里。在文本写作时,selenium webdriver的最新版本应该是2.2.0; gem list selenium-webdriver 安装firefox。本文使用firefox作为测试浏览器进行讲解,所以请确保开发环境上正确安装了firefox。由于firefox版本更新较快,我们只需要选择1个稳定版本安装既可,本文中笔者使用的版本是FF 5.0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值