关于测试自动化Selenium的使用(2)

191 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

介绍

今天是更新的第二天,也是在掘金发布的第二篇文章,更新selenium的后续使用

补充昨天的不足:selenium浏览器的驱动下载

打开你的设置,点击关于Chrome,查看你的浏览器版本

浏览器版本.png 浏览器驱动下载:chromedriver.storage.googleapis.com/index.html

根据你的浏览器版本找到对应的驱动下载

下载完成之后进行解压,保存到文件夹中,然后在环境变量的系统变量的path配置环境变量(配置的是当前的驱动的所在位置)

鼠标控制

鼠标的操作就是模拟用户点击鼠标点击事件进行操作,主要的操作方式有:左键单击,右键单击,双击,鼠标悬停,鼠标拖动

鼠标左键

左键单击.png

比如说我现在要使用鼠标左键点击首页

定位首页
juejin = driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/li/ul/li[1]/a')

单击操作
juejin.click()

代码所示第一步是通过xpath的定位方式对首页的按钮进行定位,然后通过在调用click的方式实现左键单击的操作

单击右键

右键的点击方式又是和左键不太一样,右键需要使用ActionChains

左键单击.png 还是首页的右键点击


# 还是先定位首页
button = driver.find_element_by_xpath('//*[@id="toolbar-search-button"]/span')
# 这个就是对首页的右键单击事件
ActionChains(driver).context_click(button).perform()

鼠标悬停

有一些网页的操作是需要鼠标悬停才可以展示的,不悬停一些点击的按钮是不显示的

比如京东举例

这个是鼠标没有悬停的时候 鼠标不悬停.png 这个是悬停的时候

鼠标悬停.png 首先复制选择位置的xpath

复制xpath.png

定位运营商
yuny  = driver.find_element_by_xpath('/html/body/div[1]/div[5]/div[1]/div[1]/div/ul/li[2]/a[2]')

悬停操作
ActionChains(driver).move_to_element(collect).perform()

双击事件

xpath复制.png 双击首页

# 定位首页
button = driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/li/ul/li[1]/a')
# 双击
ActionChains(driver).double_click(button).perform()

拖动事件

拖动事件是需要定位两个元素,从第一个元素拖动到第二个元素的事件,第一个元素是从这个元素开始按下鼠标,然后拖动到第二个元素之后松开鼠标。

拖动.png 那掘金的首页进行举例 我的需求是从首页拖动到沸点,我就需要他两个的xpath

# 定位首页
yuansu1 = driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/li/ul/li[1]/a')
# 定位沸点
yuansu2 = driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/li/ul/li[2]/a')
# 执行拖动动作
ActionChains(driver).drag_and_drop(yuansu1, yuansu2).perform()

下一篇明天上午或者是今天下午的时候更新