首页 > 编程语言 > 详细

python自动化对元素的处理

时间:2020-05-20 00:09:20      阅读:77      评论:0      收藏:0      [点我收藏+]

 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

 

                   

 

python自动化对元素的处理

原文:https://www.cnblogs.com/yuchne/p/10823628.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!