Selenium with Python参考手册
第一部分
1.Selenium的开头
from selenium import webdriver #总模块
from selenium.webdriver.common.keys import Keys #键盘模块
from selenium.webdriver.common.action_chains import ActionChains #引入鼠标操作模块
from selenium.webdriver.support.select import Select #导入下拉框select模块
import time #时间模块
2.对浏览器的操作
driver = webdriver.Firefox() #打开火狐浏览器,browser是个变量,Firefox火狐,Chrome是谷歌,Ie
driver.get('http://www.baidu.com/') #打开指定的网页
driver.maximize.window() #将浏览器最大化显示
driver.minimize_window() #将浏览器最小化显示
driver.set_window_size(480, 800) #设置浏览器宽480、高800显示
driver.forword() #浏览器前进
driver.back() #浏览器后退
driver.close() #close方法只会退出一个标签页
driver.quit() #quit方法将会退出浏览器
3.等待时间
time.sleep(3) #显式等待3秒,强制等待3秒
driver.implicitly_wait(10) #智能的隐式的等待10秒,只要在开头写一次进行
第二部分
1.定位网页html元素
driver.find_element_by_id('') #id定位
driver.find_element_by_name('') #name定位
driver.find_element_by_class_name('') #class定位
driver.find_element_by_link_text('') #link定位
driver.find_element_by_partial_link_text('') #partial link定位
driver.find_element_by_tag_name('') #tag定位
driver.find_element_by_xpath('') #xpath定位
driver.find_element_by_css_selector('') #css定位
2.在浏览器检查元素位置
这得积累
3.切换frame(框架)和window(窗口)
frameset 标签定义一个框架集。
frameset 元素被用来组织一个或者多个 frame 元素。每个 frame 有各自独立的文档。
frameset不用切,frame需层层切!
driver.switch_to.frame(0) #1.靠经验和运气从0开始试,第一个框架代号是0.
driver.switch_to.frame("frame1") # 2.用id来定位
driver.switch_to.frame("myframe") # 3.用name来定位
driver.switch_to.frame(driver.find_element_by_tag_name("iframe")) #这个还没用过
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@src,'myframe')]"))
#用xpath定位,套嵌一个xpath
driver.switch_to.default_content() #返回主框架
driver.switch_to.parent_frame() #返回父框架
#窗口
driver.switch_to_window("f1")
4.操作测试对象
关键字 | 动作 |
---|---|
.click() | 点击对象 |
.send_keys(’’) | 在对象上模拟按键输入 |
.clear | 清除对象的内容,如果可以的话 |
.submit | 提交对象的内容,如果可以的话 |
.text | 用于获取元素的文本信息 |
5.鼠标的操作
context_click() #右击;
double_click() #双击;
drag_and_drop() #拖动;
move_to_element() #鼠标悬停;
perform() #执行所有ActionChains 中存储的行为.
#鼠标悬停例子
mouse=driver.find_element_by_link_text("设置") #确定元素位置
ActionChains(driver).move_to_element(mouse).perform() # move_to_element()鼠标悬停
#移动操作的例子
element = driver.find_element_by_name("source") #定位元素的原位置
target = driver.find_element_by_name("target") #定位元素要移动到的目标位置
ActionChains(driver).drag_and_drop(element, target).perform() #执行元素的移动操作
#鼠标双击示例:
qqq =driver.find_element_by_xpath("xxx") #定位到要双击的元素
ActionChains(driver).double_click(qqq).perform() #对定位到的元素执行鼠标双击操作
6.下拉框的操作
#分两步,先定位下拉框,再点击选项
choice = driver.find_element_by_name("NR")
Select(choice).select_by_index(2)
#select_by_index() 方法给出的下拉框,索引来定位选择对应选项(从0开始计数)
其他:
代码 | 含义 |
---|---|
select_by_index() | 通过索引定位 |
select_by_value() | 通过value值定位 |
select_by_visible_text() | 通过文本值定位 |
deselect_all() : | 取消所有选项 |
deselect_by_index() | 取消对应index选项 |
deselect_by_value() | 取消对应value选项 |
deselect_by_visible_text() | 取消对应文本选项 |
first_selected_option() | 返回第一个选项 |
all_selected_options() | 返回所有的选项 |
7.处理弹出窗口
弹出窗口有几种不同的类型:alert(一个按钮),confirm(确认,取消),prompt(两个按钮+输入框)。
driver.switch_to.alert.accept()
#这个是处理弹窗,accept()确认