package prictce; import java.io.File; import java.io.IOException; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.We…
在使用selenium对页面进行相关操作时,有时候会遇到以下三种情况: 1.日期框:无法直接输入文本,必须要选择某一天的日期并点击才会填入文本框: 2.检索框:可以直接输入文本,但必须要点击根据输入的文本检索出来的下拉列表的某一项: 3.置灰的文本框:无法直接输入文本 按照常规套路,我们通常都会采取各种元素定位方法按照操作步骤一步一步来实现,但是遇到上面三种奇葩,页面定位操作就显得有些捉襟见肘了,因此我们可以通过selenium中的javascript操作来处理它. 我们以12306铁路官网的查…
下拉列表操作中分为两种:select.非select 1.非select的下拉框操作 非select下拉列表操作与网页元素操作一致,找到元素,定位元素,设置等待,点击元素等等 接下来操作百度的设置按钮,设置属于一个下拉框 举个栗子: from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expec…
一.窗口切换 使用方法: 1.获取到打开的所有的窗口,句柄handles all_handles = driver.window_handles print(all_handles) 2.获取当前的窗口 driver.current_window_handle print(driver.current_window_handle) 3.利用切换的语句,切换到想要操作的窗口(HTML页面) # 获取到的所有窗口为一个列表,用索引取值 driver.switch_to.window(all_hand…
等待时做什么,为什么使用等待 在做自动化测试,设计测试用例的时候,有时下一步的操作会依赖上一步的结果或者内容,上一步操作成功之后才能进行下一步操作等,这时候,我们就需要使用等待,来判断上一步操作是否完成,什么时候可以进行下一步操作. 1.强制等待 sleep(),单位是秒使用方法:sleep(X),等待X秒后,进行下一步操作.无论条件成立与否,都要等待到时间截至,才能进行下一步操作缺点:不能准确把握需要等待的时间(有时操作还未完成,等待就结束了,导致报错:有时操作已经完成了,但等待时间还没有到,…
之前在做UI自动化测试中 经常会用到  WebDriver  和 WebElement两个类   以前对这两个类总感觉有点傻傻分不清 昨天看了下之前下的代码  结合自己的理解  对着两个类的区别和关系整理一下(欢迎拍砖指正)   希望对这两个类同样有疑惑的同学有帮助 先说Webdriver Webdriver  我理解它是一个浏览器驱动类   封装了浏览器的操作方法 比如: 浏览器的打开关闭,窗口切换,查找元素,获取当前url,获取标题,前进后退等等 WebElement  我理解它是一个元素类…
Chrome chrome的webdriver :  http://chromedriver.storage.googleapis.com/index.html chrome的webdriver需要对应chrome版本下载, 不同版本之间可能会出现不兼容情况. Firefox Firefox的webdriver : https://github.com/mozilla/geckodriver/releases/ Firefox的webdriver下载最新的即可. IE IE的webdriver…
初学自动化测试,貌似大家十有八九都是用百度网站进行练手的,特此感谢百度. http://www.baidu.com 页面中主要就是搜索框和提交按钮: 输入框各元素属性:<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off"> 主要包括id.name.class等主要属…
刚刚在写Python爬虫的时候用到了selenium , 在跳转新页面时发现无法定位新页面 , 查找不到新页面的元素 一番查询后得到了解决方法 , 便记录下来备忘 , 也与大家分享 # 页面跳转代码... # 方式一 time.sleep(1) search_window = driver.current_window_handle # 此行代码用来定位当前页面 # 方式二 time.sleep(1) driver.switch_to.window(driver.window_handles[0…
1.下拉框的修改操作 方法一:定位到元素后,通过select选择对应的值 方法二:通过两次点击的方法:没有select的value属性时,采用click两次的方法去选择: click第一次后,出现下拉框的内容,再click第二次进行选择,第2次click进行定位时,一级一级的定位 方法三:通过display显示属性的方法:禅道的提bug页面的所属模块 2.连贯操作(鼠标悬浮) 方法一:先定位到悬浮处——再定位到双击按钮处——再进行点击 方法二:定位到双击按钮进行点击 3.拖拽操作:比如拼图:从起…