很多想要做软件测试的小伙伴们可能会听到别的小伙伴安利一个强大的框架——selenium,然后又因为怕框架配置麻烦而迟迟未能开始学习。现在,python selenium 教程来了!使用相对易学易配置的 python 语言进行开发,学习成本低,对编程的要求也没有其他语言那么高,确定不感兴趣?感兴趣的小伙伴们赶紧跟紧小编节奏,开始学习 python 自动化测试吧!
阅前须知:
建议初学者们先系统地学习完 python 编程课再进行该框架的学习:
selenium 配置可以参考这篇文章:selenium—自动化测试利器的安装配置
创建 webdriver 对象
使用如下代码,创建一个 webdriver 对象,才能进行接下来的操作。
driver = webdriver.Chrome()
从定位元素开始
selenium 有八种定位方式,分别为 id 定位,name 定位,class 定位,tag 定位,link 定位,partial link 定位,css 定位和 Xpath 定位。其中 Xpath 定位使用比较广泛,小编接下来使用 Xpath 定位进行演示:
driver.find_element_by_xpath("//*[@id='nav']/div/ul/li[2]").click()
driver 下面有 find_element_by_xpath
方法可以获取一个 html 元素,获取到这个元素后可以使用 click()
方法点击这个元素。find_element_by_xpath
方法里面可以进行 Xpath 的选择。关于 Xpath 的教程可以参考:Xpath教程
浏览器控制
浏览器控制直接调用 driver 对象的方法即可对浏览器进行控制操作。
#控制窗口大小
driver.set_window_size(480,800)
#设置休眠,单位为秒
sleep(2)
#控制页面后退
driver.back()
sleep(2)
#控制页面前进
driver.forward()
sleep(2)
#控制页面刷新
driver.refresh()
#最大化页面
driver.maximize_window()
键盘控制
选中元素后,使用 send_keys()
可以将指定的内容键入到目标元素中(一般用于输入数据)。
#元素操作-模拟输入(定位到输入框),通过send_keys发送输入的数据
driver.find_element_by_xpath("//*[@id='searched_content']").send_keys("java教程")
鼠标控制
使用ActionChains对象可以进行鼠标的操作,在鼠标操作之后要加 perform()
方法将暂存的鼠标操作执行出去。
# #使用right_来存放选中的元素对象
right_click =driver.find_element_by_xpath("//*[@id='searched_content']")
#使用如下代码,可以右击right_对象
ActionChains(driver).context_click(right_click).perform()
move =driver.find_element_by_xpath('/html/body/div[4]/div')
#使用如下代码,可以悬停在move对象上
ActionChains(driver).move_to_element(move).perform()
上面所有代码合成
在以上的代码均为非完整版,以下是完整版的代码,包括引用 selenium 库等代码。
from selenium import webdriver
#使用selenium要导入selenium包
from selenium.webdriver.common.action_chains import ActionChains
#使用鼠标点击事件要导入ActionChains
from time import sleep
#使用sleep要导入time包
#创建一个webdriver对象
driver = webdriver.Chrome()
#使用webdriver对象访问w3Cschool
driver.get("https://www.w3cschool.cn/")
#使用Xpath方法获取页面上一个元素的定位,使用click方法为点击这个元素
driver.find_element_by_xpath("//*[@id='nav']/div/ul/li[2]").click()
#控制窗口大小
driver.set_window_size(480,800)
#设置休眠,单位为秒
sleep(2)
#控制页面后退
driver.back()
sleep(2)
#控制页面前进
driver.forward()
sleep(2)
#控制页面刷新
driver.refresh()
#最大化页面
driver.maximize_window()
#元素操作-模拟输入(定位到输入框),通过send_keys发送输入的数据
driver.find_element_by_xpath("//*[@id='searched_content']").send_keys("java教程")
#元素操作,清空文本
sleep(2)
driver.find_element_by_xpath("//*[@id='searched_content']").clear()
# #使用right_来存放选中的元素对象
right_click =driver.find_element_by_xpath("//*[@id='searched_content']")
#使用如下代码,可以右击right_对象
ActionChains(driver).context_click(right_click).perform()
move =driver.find_element_by_xpath('/html/body/div[4]/div')
#使用如下代码,可以悬停在move对象上
ActionChains(driver).move_to_element(move).perform()
小结
掌握了以上的操作,就算是基本入门 selenium 了。由于篇幅原因,小编只能简单地挑一些比较简单的 selenium 的基础操作进行讲解,后续小编还会继续介绍该框架,希望各位看官大大多多捧场。