selenim之ActionChains

selenim之ActionChains(一)

大家好,来介绍下,今天要分享的是小编学ActionChains的经验。

先来说一下今天要用到的方法:

  • click(element=null)                                 点击元素,参数为空时,鼠标在当前位置点击
  • send_keys(keys_to_send)                     向文本框发送文字、按键                                    
  • move_to_element(element)                   鼠标悬浮在某元素上
  • perform()                                               执行所有存储在ActionChains中的动作

ActionChains是什么呢?顾名思义吧,是一个动作链,如果在一个用例中只有一两个动作,那么用之前讲过的简单版的就可以了,如果动作很复杂,那么可以使用这个了。

  • ActionChains是自动执行低级交互的一种方式,例如:鼠标移动,鼠标点按,键盘操作,文本操作等。
  • 当我们调用这里的方法时,这些操作会被先储存在一个队列中,当我们调用perform()方法时,队列中的操作会被按顺序执行,执行后队列被清空。

首先来看如何引入这个包

from selenium.webdriver.common.action_chains import ActionChains

当然,我们还要引入webdriver的包,用来启动浏览器

from selenium import webdriver

 下面以火狐首页为例,以一个较复杂的用例,来介绍几个最常用最常用的操作,先来看下需要用到的元素

第一组动作,在火狐首页,打开新浪新闻

  <div class="site-dropmenu" style="display: block;">
    <a class="site-sub first" href="http://news.sina.com.cn/" title="新浪新闻">新浪新闻</a>
    <a class="site-sub " href="http://sports.sina.com.cn/" title="新浪体育">新浪体育</a>
    <a class="site-sub " href="http://finance.sina.com.cn/" title="新浪财经">新浪财经</a>
    <a class="site-sub " href="http://mil.news.sina.com.cn/" title="新浪军事">新浪军事</a>
  </div>
</li>

 

#定位新浪
sina=driver.find_element_by_css_selector("a[title='新 浪']")
#定位新浪新闻
news=driver.find_element_by_css_selector("a[title='新浪新闻']")

#定义ActionChains
actions=ActionChains(driver)
#鼠标移动到“新浪”上点击“新浪新闻”
actions.move_to_element(sina).click(news).perform()

 第二组操作,在搜索栏搜索“鹿晗”,点击搜索

<!-- 搜索框 -->
<input class="cheadSeaKey" name="q" value="请输入关键词" onfocus="if(this.value=='请输入关键词'){this.value='';}" onblur="if(this.value==''){this.value='请输入关键词';}" autocomplete="off" type="text"/>
<!-- 搜索按键 -->
<input class="cheadSeaSmt" value="搜索" type="submit"/>
actions=ActionChains(driver)
keys=driver.find_element_by_css_selector("input[value='请输入关键词']")
search=driver.find_element_by_css_selector("input[value='搜索']")
keys.click()
actions.send_keys(u"鹿晗")
actions.click(search).perform()
 全部代码
ActionChains1


import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver

driver=webdriver.Firefox()
driver.get("http://e.firefoxchina.cn/")
time.sleep(3)
print("打开网页成功")

#定位
sina=driver.find_element_by_css_selector("a[title='新 浪']")
news=driver.find_element_by_css_selector("a[title='新浪新闻']")

#定义动作
actions=ActionChains(driver)
actions.move_to_element(sina).click(news).perform()
actions.perform()

#切换窗口
driver.switch_to_window(driver.window_handles[-1])
print(driver.title)

#第二组动作
actions=ActionChains(driver)
keys=driver.find_element_by_css_selector("input[value='请输入关键词']")
search=driver.find_element_by_css_selector("input[value='搜索']")
keys.click()
actions.send_keys(u"鹿晗")
actions.click(search).perform()

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值