selenium上滑动鼠标,浏览器接口不清零坐标参数
2017-09-13 10:25
417 查看
ActionChains(driver).drag_and_drop_by_offset().perform().release()
使用上面的方法移动下面的控件时候就会滑动距离会递增,由于浏览器接口没有清零坐标,导致第二次再滑动时,是在原来的坐标上再次移动多了第一次滑动的距离,假如第一次滑动X1,第二次滑动X2,实际上第二次滑动的距离为X1+X2,第三次滑动的距离为X1+X1+X2+X3。查看webdriver的代码没这方面的方法。后来用一个递归的函数来滑动到想要的元素。调用底层的接口函数Command.XXX。
具体代码如下:
页面元素的截图如下:
![](http://47.89.12.54:9000/api/file/getImage?fileId=59b88cfb08e54c000a000053)
调用:
self.move(driver,
'//div[@class="mint-popup mint-popup mint-popup-bottom"]/div['+str(i)+']/div/div/div[@class="picker-slot picker-slot-center slot3"]/div/div[@class="picker-item picker-selected"]', endElementText=abodeCity,height=height,selectElementText='请选择所在城市')
使用上面的方法移动下面的控件时候就会滑动距离会递增,由于浏览器接口没有清零坐标,导致第二次再滑动时,是在原来的坐标上再次移动多了第一次滑动的距离,假如第一次滑动X1,第二次滑动X2,实际上第二次滑动的距离为X1+X2,第三次滑动的距离为X1+X1+X2+X3。查看webdriver的代码没这方面的方法。后来用一个递归的函数来滑动到想要的元素。调用底层的接口函数Command.XXX。
具体代码如下:
def move(self,driver,beginElementId,endElementText,height,selectElementText):
beginElement=driver.find_element_by_xpath(beginElementId)
if(beginElement.text.find(endElementText)==0):
return True
else:
#beginElement=driver.find_element_by_xpath('//div[@class="'+str(beginElementId)+'"]/div/div[@class="picker-item picker-selected"]')
moveDic={'xoffset':0,'yoffset':0}
driver.execute(Command.MOVE_TO,{'element': beginElement.id})
driver.execute(Command.MOUSE_DOWN,{})
moveDic['yoffset']=-int(2*height-int(height/2))
driver.execute(Command.MOVE_TO,moveDic)
time.sleep(0.5)
driver.execute(Command.MOUSE_UP,{})
driver.find_element_by_xpath('//div[@class="mint-popup mint-popup mint-popup-bottom"]/div/span[contains(text(),"完成")]').click()
time.sleep(1)
driver.find_element_by_xpath('//input[@placeholder="'+str(selectElementText)+'"]').click()
time.sleep(0.5)
self.move(driver, beginElementId, endElementText, height, selectElementText)
页面元素的截图如下:
调用:
self.move(driver,
'//div[@class="mint-popup mint-popup mint-popup-bottom"]/div['+str(i)+']/div/div/div[@class="picker-slot picker-slot-center slot3"]/div/div[@class="picker-item picker-selected"]', endElementText=abodeCity,height=height,selectElementText='请选择所在城市')
相关文章推荐
- 用 javascript 获取鼠标(光标)的坐标位置 兼容IE/Firefox等浏览器
- 获取鼠标的坐标值(保证跨浏览器兼容)
- JavaScript得到鼠标指针相对于浏览器页面(或客户区)的水平坐标(兼容ie,ff)
- Python+selenium 获取浏览器窗口坐标、句柄的方法
- 微信生成ticket带参数的二维码接口api浏览器跳转app指定网址
- 鼠标滑动获取绝对坐标方法 jquery
- 取得浏览器当前鼠标的X,Y坐标的JavaScript脚本及document元素的一些重要属性
- 实时显示鼠标指针相对于浏览器X轴Y轴坐标位置
- selenium对浏览器操作、鼠标操作等总结
- 鼠标滑动显示不同页面的效果——————获取鼠标相对于整个页面的坐标
- JS+JQuery实现任意意嵌套的IFrame里鼠标相对于浏览器窗体坐标
- js获取鼠标坐标位置兼容多个浏览器
- Python+selenium 获取浏览器窗口坐标、句柄
- selenium2java通过请求接口获取并向浏览器插入cookies
- Selenium Webdriver JS事件在各浏览器的区别,彻底解决Selenium鼠标悬停 Mouseover和hover问题
- selenium2java通过请求接口获取并向浏览器插入cookies
- Selenium:浏览器及鼠标、键盘事件
- 浏览器的鼠标坐标值获取及pageX、clientX、screenX的差异
- 鼠标滑动,显示坐标
- Selenium 的具体操作(浏览器,鼠标,键盘等)