webdriver处理循环点击

未经作者允许,禁止转载!python selenium webdriver处理循环点击

循环点击主要是针对一些同类的选择按钮,或者下拉选项,或者是选择页码~~~~~~

如下面两张图片显示的将年份进行循环选择,和将鼠标悬浮循环选择

下面是用python写的 selenium webdriver处理循环点击代码,相关的java代码随后在发表

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

driver=webdriver.Chrome()
driver.get("http://toyota-oss:[email protected]/tcom-apps/vapi-preview/console.html")
#alert = driver.switch_to_alert()   如果是第一次打开上面的链接,就需要alert.accept(),但是从第二次之后保留了cookie就不再有弹窗
#alert.accept()
driver.maximize_window()
time.sleep(2)
print "进入toyota首页" 

#total_year=len(driver.find_element_by_id(‘year‘).find_element_by_tag_name(‘option‘))------报错:WebElement没有len属性
#print "年份的个数是"+total_year
#time.sleep(2)
#years=driver.find_element_by_id(‘year‘).find_element_by_tag_name(‘option‘)----------报错:WebElement没有循环属性
#for year in years:
#    year.click()
#    time.sleep(1)---------------本来打算用这个循环很方便的,但是总是报错,只能用下面的笨方法了!
modelyear=driver.find_element_by_xpath("//select[@id=‘year‘]/option[1]")
year2017=driver.find_element_by_xpath("//select[@id=‘year‘]/option[2]")
year2016=driver.find_element_by_xpath("//select[@id=‘year‘]/option[3]")
year2015=driver.find_element_by_xpath("//select[@id=‘year‘]/option[4]")
year2014=driver.find_element_by_xpath("//select[@id=‘year‘]/option[5]")
year2013=driver.find_element_by_xpath("//select[@id=‘year‘]/option[6]")

yearList=[modelyear,year2017,year2016,year2015,year2014,year2013]
for year in yearList:
    year.click()
    time.sleep(1)
time.sleep(3)

driver.find_element_by_xpath("//*[@id=‘console‘]/div[6]/input").click()
time.sleep(4)

Content1=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[1]")
Content2=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[2]")
Content3=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[3]")
Content4=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[4]")
Content5=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[5]")
Content6=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[6]")

ContentList=[Content1,Content2,Content3,Content4,Content5,Content6]
for Content in ContentList:
    Content.click()
    time.sleep(1)
print "循环点击结束"
time.sleep(2)

Content1=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[1]")
Content2=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[2]")
Content3=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[3]")
Content4=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[4]")
Content5=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[5]")
Content6=driver.find_element_by_xpath("/html/body/div[2]/div/nav/ul/li[6]")
ContentList=[Content1,Content2,Content3,Content4,Content5,Content6]

for Content in ContentList:
#above=driver.find_element_by_id("hao123-star")
    ActionChains(driver).move_to_element(Content).perform()
    time.sleep(1)
print "循环悬浮结束"
total_year=len(driver.find_element_by_id(‘year‘).find_element_by_tag_name(‘option‘))-------------报错:WebElement没有len属性
print "年份的个数是"+total_year
time.sleep(2)
years=driver.find_element_by_id(‘year‘).find_element_by_tag_name(‘option‘)-----------------------报错:WebElement没有循环属性
for year in years:
    year.click()
    time.sleep(1)不知道为什么总是报错,我有点开始怀疑人生了!慢慢研究吧,有结果了在分享给大家!

above=driver.find_element_by_id("hao123-star")
ActionChains(driver).move_to_element(above).perform()

这段代码是:鼠标悬浮

时间: 2024-10-28 11:40:21

webdriver处理循环点击的相关文章

selenium-webdriver循环点击百度搜索结果以及获取新页面的handler

webdriver还是很有意思的,之前用过Ruby的watir的自动化测试框架,感觉selenium的这套框架更好一些,很容易就可以上手.我虽然不做自动化这块,不过先玩玩再说,多学点东西总之还是好一些的. 1 # coding:utf-8 2 import time 3 from selenium import webdriver 4 import unittest 5 from pythontest.commlib.baselib import * 6 7 8 #引用封装后的日志系统 9 lo

selenium循环点击文本框

1.可以用xpath循环点击checkbox List<WebElement> list = dr.findElements(By.className("datagrid-row")); int size = list.size(); if(size>0){ for(int i=0;i<size;i++) { int j = i+1; String index = "/html/body/div[2]/div/div[2]/div[2]/div[2]/

Dom循环点击处理插件

Web交互中,有种很常见的情况就是,当某个dom被第一次点击时,执行某种操作,第二次被点击时,执行另一种操作--第N次被点击时,执行第N种操作,当N+1时,有开始执行第一种操作,如此往复循环-- 就这么一个dom的重复点击事件我也能无聊到做个插件出来,当真脑残,但既然做出来了,那就再次记录下,记录自己的脑残人生! PS:此插件基于JQuery,以下是相关代码,其中参数methodName可以不传,此时表示对dom进行click事件绑定,如果传入非空字符串,则表示要执行相应的方法,暂时该插件只提供

仿开心消消乐 大树星星无限循环 点击(自定义view实现)

啥都不说先上效果图把.. 这个是我项目里的效果![这里写图片描述] 下面的是我抽取出来的 demo 适配啥的我基本上都做好了 没做其他的 ============================================================= 分割线 ================================================================== ok 下面 说一下思路把 首先 说一下原理 我是使用bitmap 创建两张图 一开始的时候 一张

循环中点击单个事件(巧用this,指向当前对象)

<em id='show' value="<?php echo $member['phone']; ?>" class="sui"><a href="#">查看归属地</a></em> <em id='show' value="<?php echo $member['phone']; ?>" class="sui"><

Python+Selenium+Unittest编写超链接点击测试用例

测试功能:博客园首页网站分类的一级菜单链接和二级菜单链接的点击. 遇到的问题: 1.循环点击二级菜单时,点击了一个一级菜单下的第一个二级菜单后,页面会刷新,再定位同一个一级菜单次下的第二个二级菜单时, 会报错:找不到第二个二级菜单,这时需要对一级菜单重新定位赋值: 2.当一级菜单下的二级菜单太多时,在页面的不可见区域,这时会报错:element not interactable,这时需要滑动滚动条. # coding=utf-8 from selenium import webdriver im

selenium动态页面模拟点击

# 爬取斗鱼直播平台的所有房间信息: #coding=utf-8 from selenium import webdriver import json import time class Douyu: # 1.发送首页的请求 def __init__(self): self.driver = webdriver.PhantomJS() self.driver.get("https://www.douyu.com/directory/all") #请求首页 #获取没页面内容 def ge

按键精灵手机版监控像素变换点击脚本

Dim GetColor Do GetColor = GetPixelColor(532, 708)//获得坐标的颜色 //TracePrint Now() //TracePrint GetColor If GetColor <> "FFFFFF" Then For 1000//循环点击1000次 Tap 555, 680 Next Exit Do TracePrint GetColor End If Delay 10 Loop 监控屏幕像素颜色变换,获取变换,触发点击.

淘宝试用 模拟点击程序

一个模拟点击事件的程序.试用python语言.循环点击淘宝试用的宝贝.由于平时中过几次淘宝试用,认为有这种机会白不用,所以自己写了个小程序,免去人为琐碎的点击申请宝贝. 代码开源在github https://github.com/Rockyzsu/TaobaoTrial