记一个Selenium自动化测试网页

今天想跟你们分享的是Selenium自动化测试网页,就是关于selenium的自动化测试一些基础的东西,若有不对的地方请多多指教。css

1、安装环境python

一、Python环境web

安装完成后经过Windows命令提示符CMD输入“python”,查看是否安装成功面试

二、安装setuptools与pipshell

setuptools是PEAK(Python enterprise Application Kit)的一个副项目,是python的distutilsde的加强工具,能够更方便建立和发布python包,特别是对其余包有依赖的状况;浏览器

pip是一个安装和管理python包的工具,经过pip来安装python包将变得很简单,省去了繁琐的过程,pip的安装依赖于setuptools,安装pip以前须要先安装setuptools;cookie

三、下载selenium包框架

pip install selenium函数

4.下载浏览器驱动工具

火狐和谷歌各有各的驱动

下载连接:https://www.seleniumhq.org/do...

简单示例

示例名称: test_python_org_search.py

   import unittest

       #引入 unittest 模块是基于JAVAJUnit的Python内置的模块。 该模块提供了一个框架去组织测试用例

  from selenium import webdriver

  #selenium.webdriver 模块提供了全部WebDriver的实现

  from selenium.webdriver.common.keys import Keys

  # Keys 类提供全部的键盘按键操做

  class PythonOrgSearch(unittest.TestCase):

  #测试类继承自 unittest.TestCase. 继承 TestCase 类是告诉 unittest 模块该类是一个测试用例

  def setUp(self):

  self.driver = webdriver.Firefox()

  #SetUp 方法是初始化的一部分,建立了一个Firefox WebDriver的一个实例

  def test_search_in_python_org(self):

  driver = self.driver

  driver.get("http://www.python.org")

  #driver.get 方法将会根据方法中给出的URL地址打开该网站

  self.assertIn("Python", driver.title)

  #使用assert断言的方法判断在页面标题中是否包含 “Python”

  elem = driver.find_element_by_name("q")

  #找到name为q的DOM节点

  elem.send_keys("pycon")

  #在name为q的DOM节点中,输入pycon

  elem.send_keys(Keys.RETURN)

  #按enter键

  assert "No results found." not in driver.page_source

  def tearDown(self):

  self.driver.close()

  #tearDown 方法会在每个测试方法执行以后被执行。 该方法能够用来作一些清扫工做,好比关闭浏览器。 固然你也能够调用 quit 方法代替`close`方法

  #区别:quit 将关闭整个浏览器,而`close`只会关闭一个标签页

  if __name__ == "__main__":

  unittest.main()

  #入口函数

可直接在shell中运行:python test_python_org_search.py

 经常使用方法讲解

 1.打开一个页面

  driver.get("http://www.baidu.com")

  WebDriver 将等待,直到页面彻底加载完毕(实际上是等到 onload 方法执行完毕), 而后返回继续执行你的脚本。 值得注意的是,若是你的页面使用了大量的Ajax加载, WebDriver可能不知道何时页面已经彻底加载。

2.与页面交互

  WebDriver 提供了大量的方法帮助你去查找元素,例如

 <input type="text" name="passwd" id="passwd-id" />

  可经过如下方法查找:

       element = driver.find_element_by_id("passwd-id")

  element = driver.find_element_by_name("passwd")

  element = driver.find_element_by_xpath("//input[@id='passwd-id']")

  你还能够经过连接的文本查找他,须要注意的是,这个文本必须彻底匹配。 当你使用XPATH时,你必须注意,若是匹配超过一个元素,只返回第一个元素。 若是上面也没找到,将会抛出 NoSuchElementException异常。

  执行一些操做,例如:

  在文本框中输入一些内容:element.send_keys("some text")

  清除内容:element.clear()

  选择下拉框:WebDriver的支持类有一个叫作 Select的类

  from selenium.webdriver.support.ui import Select

  select.select_by_index(index)根据option的顺序

  select.select_by_visible_text("text")根据文本

  select.select_by_value(value)根据它的value值

  取消选择:select.deselect_all()

  提交选择:element.submit()

 3.拖放

   element = driver.find_element_by_name("source")

  target = driver.find_element_by_name("target")

  from selenium.webdriver import ActionChains

  action_chains = ActionChains(driver)

  action_chains.drag_and_drop(element, target).perform()

 4.弹出对话框处理方式

  alert = driver.switch_to_alert()

  switch_to_alert()   #定位弹出对话

  text()    #获取对话框文本值

  accept() #至关于点击"确认"

  dismiss() #至关于点击"取消"

  send_keys() # 输入值,这个alert和confirm没有输入对话框,因此这里就不能用了,因此这里只能使用在prompt这里。

       若是对软件测试、接口测试、自动化测试、面试经验交流。感兴趣能够加软件测试交流:1085991341,还会有同行一块儿技术交流。

 5.操做cookie

  打开一个页面 driver.get(“http://www.example.com”)

  如今设置Cookies,这个cookie在域名根目录下(”/”)生效 cookie = {‘name’ : ‘foo’, ‘value’ : ‘bar’} driver.add_cookie(cookie)

  如今获取全部当前URL下可得到的Cookies driver.get_cookies()

6.查找元素

  find_element_by_id

  find_element_by_name

  find_element_by_xpath

  find_element_by_link_text

  find_element_by_partial_link_text

  find_element_by_tag_name

  find_element_by_class_name

  find_element_by_css_selector

以上内容但愿对你有帮助,有被帮助到的朋友欢迎点赞,评论

相关文章
相关标签/搜索