python自动化对元素的处理
Select提供了三种选择方法:
select_by_index(index) ——通过选项的顺序,第一个为 0
select_by_value(value) ——通过value属性
select_by_visible_text(text) ——通过选项可见文本
Select提供了四种方法取消选择:
deselect_by_index(index)
deselect_by_value(value)
deselect_by_visible_text(text)
deselect_all()
Select提供了三个属性方法提供信息:
options ——提供所有的选项的列表,其中都是选项的WebElement元素
all_selected_options ——提供所有被选中的选项的列表,其中也均为选项的WebElement元素
first_selected_option ——提供第一个被选中的选项,也是下拉框的默认值
selenium中对事件的处理
1、鼠标事件:
# 每个模拟事件后需加.perform() 才会执行
# context_click() 右击
# double_click() 双击
# drag_and_drop(source, target) 拖动
# move_to_element() 鼠标悬停
# move_to 移动
from selenium import
webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
# move_to 移动
# 定位到元素的源位置
ele = driver.find_element_by_link_text('新闻')
# 将鼠标移动到定位的元素上面
ActionChains(driver).move_to_element(ele).perform()
# 鼠标拖放操作:drag_and_drop(source, target)
# source: 鼠标拖动的源元素。
# target: 鼠标释放的目标元素。
# 定位元素的源位置
element = driver.find_element_by_id("xxx")
# 定位元素要移动到的目标位置
target = driver.find_element_by_id("xxx")
# 执行元素的拖放操作
ActionChains(driver).drag_and_drop(element, target).perform()
2、键盘事件
# send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
# send_keys(Keys.SPACE) 空格键(Space)
# send_keys(Keys.TAB) 制表键(Tab)
# send_keys(Keys.ESCAPE) 回退键(Esc)
# send_keys(Keys.ENTER) 回车键(Enter)
# send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
# send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
# send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
# send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
# send_keys(Keys.F1) 键盘F1
# ……
# Send_keys(Keys.F5)键盘F5
# …
# send_keys(Keys.F12) 键盘F12
from selenium import webdriver
# 导入Keys 模块
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
# 输入框输入内容
driver.find_element_by_id("kw").send_keys("seleniumm")
# Backspace键(删除输入的内容)
driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)
# 如键盘的F5刷新
driver.find_element_by_id('kw').send_keys(Keys.F5)
# 输入空格键+“教程”
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys(u"教程")
# 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')
selenium中对弹框的处理
text=driver.find_element_by_xpath("/html/body/div/h2/input[1]").click()
alter = driver.switch_to_alert()
alter.text #返回弹框文本
alter.accept() ## 弹框之后确认
alter.dismiss()## 弹框之后取消
alter.send_keys("yes") ## 弹框输入的内容
time.sleep(2)
'''
driver.find_element_by_xpath('/html/body/div/h2/input[1]').click()
dialog_box = driver.switch_to_alert()
time.sleep(2)
dialog_box.send_keys("yes")
dialog_box.accept()
print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text) #获取确认弹窗结果
time.sleep(2)
driver.find_element_by_xpath('/html/body/div/h2/input[1]').click()
dialog_box = driver.switch_to_alert()
time.sleep(2)
dialog_box.dismiss() #关闭对话框
print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text) #获取关闭弹窗结果
time.sleep(2)
driver.quit()
selenium中对frame的处理
iframe有name或id值
self.driver.switch_to.frame('iframe-name-id')
# iframe没有name或id值
xf = self.driver.find_element_by_xpath('//iframe[@allowtransparency="true"]')
self.driver.switch_to.frame(xf)
# 跳出当前iframe
self.driver.switch_to.parent_frame()
# 返回最外层iframe
self.driver.switch_to.default_content()
selenium对js的处理
driver.execute()_script(js代码)
selenium中对滚动条的处理
#将页面滚动条拖到底部
js = "var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
time.sleep(3)
#将滚动条移动到页面的顶部
js = "var q=document.documentElement.scrollTop=0"
driver.execute_script(js)
time.sleep(3)
driver.quit()
python 链接mysql数据库:
数据库连接
安装mySQLDB:
首先,在python2.7中用到import mysqldb的时候,提示你缺少这个模块,那么你需要pip install mysql-python,但使用windows系统在pip这个模块的时候可能会出现一些问题,如下:
用pip install mysql-python出现问题
(1)出现缺少Microsoft VC++ 9.0的问题,是缺少对于python2.7的c语言的编译解释器
用VCForPython27这个工具可以解决这个问题
(2)出现Cannot open include file: 'config-win.h': No such file or directory这个问题,是缺少MySQL-python-1.2.5-py2.7这个第三方类库,安装之后可以解决
(3)在使用python的第三方类库的时候,会出现python2.7不在注册表内,报错:python version 2.7 required,which was not found。是因为两种原因,一种是没有配置python的环境变量,他真的不在注册表里面,另一种这是因为,python和第三方类库不都是32位或64位。所以要统一格式
比如:
MySQL-python-1.2.3.win32-py2.7
MySQL-python-1.2.5.win-amd64-py2.7
上面的是32位,下面的是64位
(1)(2)(3)方案解决方案中的工具在我的云盘分享的连接里可以下载到
链接:https://pan.baidu.com/s/1_GvIWoJByOyIyTYvDfADPQ 密码:q1ql