Selenium_Webdriver–scrollbar操作

1.在测试过程中,需要控制页面的滚动条的时候,需要用JavaScript 来实现: #控制滚动条到页面底部,两种方法都可以; driver.execute_script(“window.scrollTo(0, 10000);”) driver.execute_script(“document.documentElement.scrollTop=10000”) #控制滚动条到页面顶部 driver.execute_script(“window.scrollTo(0, 0);”) driver.execute_script(“document.documentElement.scrollTop=0”) 2.测试过程中经常容易出现比较低级的错误,在这里记一下: >a.定义测试函数的时候,函数名一定要test开头,否则,unittest 执行不了,囧~ 最好保持良好的编程习惯,命名统一: def test_scroll(self): >b.自己敲代码的时候,总是记不住要把下面这句顶到行起始位置!! if __name__ == “__main__”: unittest.main() 参考文件,scroll还有几种比较好的实现方法: http://blog.likewise.org/2015/04/scrolling-to-an-element-with-the-python-bindings-for-selenium-webdriver/ Keep changing…

Selenium_Webdriver– 执行JavaScript

1.执行JavaScript 脚本进行元素的淡入淡出操作-fadeIn(), fadeOut() 它们的调用格式分别为: $(selector).fadeIn(speed,[callback]) $(selector).fadeOut(speed,[callback]) >a.淡出link: #此处使用id定位元素,$(“#id”).fadeOut(3000); driver.execute_script(‘$(“#tooltip”).fadeOut(3000);’) html code: hover to see tooltip%

Selenium_Webdriver–Chrome驱动测试

1.Chrome Webdriver testing. Q:在执行selenium/webdriver 的测试用例的时候,默认是驱动FireFox()浏览器进行测试的, 如果我尝试用Chrome 去驱动测试呢? A:首先下载Chrome webdriver(os-Win10 64 bit): 点击这里,下载Chrome Webdriver. 然后解压到对应的位置,在代码中替换“self.driver = webdriver.Firefox()”为: self.driver = webdriver.Chrome(executable_path= “C:/Users/JANE/Documents/Webdriver/chromedriver”) 解决啦! 2.屏幕截图. Tips:在测试的过程中,想要看到用例执行的过程实际屏幕是什么样子的,可以选用截图操作: driver = self.driver driver.save_screenshot(‘checkbox.png’) 3.上传文件操作. selenium2.x webdriver 测试的上传文件功能特别简单,不需要点击页面中的按钮,选择本地文件等操作,只要一个send_keys()! driver.find_element(by_id, by_name,etc).send_keys(“thepathoflocalfile”) eg:driver.find_element_by_name(“file”).send_keys (“D:\ABA_Selenium_Testing\ABATesting\checkbox.png”) 参考文章: https://jzchangmark.wordpress.com/2015/02/26/selenium-%E4%BD%BF%E7%94%A8-chrome-%E7%80%8F%E8%A6%BD%E5%99%A8-webdriver/ http://www.weiguda.com/blog/47/ Love python! A little change everyday…

Selenium_Webdriver–iterable(迭代) error

在用selenium 定位页面元素的时候,可以用到各种find_element_by_*操作。但是当你需要定位一组元素的时候,要用到find_elements_by_*(此处注意这个s). Q:今天在写程序,对页面中定位到的所有checkbox勾选,代码如下: def test_checkbox(self): driver = self.driver driver.get(self.base_url) inputs = driver.find_element_by_tag_name(“input”) for input in inputs: if input.get_attribute(“type”) == “checkbox”: input.click() time.sleep(3) 运行测试用例报错: Traceback (most recent call last): File “D:/ABA_Selenium_Testing/ABATesting/CheckBox.py”, line 25, in test_checkbox for input in inputs: TypeError: ‘WebElement’ object is not iterable A:iterable 迭代, 原来是用错了find_element_导致的,囧,换成find_elements_× OK 啦。 Note: 点击学习更多os.path操作 每天进步一点点…

Selenium_Python_Note–元素的定位xpath

定位元素的方法有很多种,首选肯定还是id, class, name, 但素,如果某个元素根本没有这些东西呢? 那么只好选用xpath了,但是一定要优先选用一些有意义的文字,比如我目前用到的例子: 定位一个叫username的链接: driver.find_element_by_xpath(“//span[@class=’username ng-binding’]”).click() 定位一个’Submit’ 按钮: driver.find_element_by_xpath(“//button[@type=’submit’]”).click() 定位一个’Search’ 按钮: driver.find_element_by_xpath(“//button[contains(text(), ‘Search’)]”).click() 定位一个输入框: driver.find_element_by_xpath(“//input[@type=’text’]”).send_keys(“new”) 感觉xpath 特别灵活,但是网络上对它的褒贬也是不一致的。 点击此处学习更多Xpath定位用法~ Xpath 学习

Selenium_Python_Note–xlrd 数据驱动测试,excel 中的数字操作

记录一个最近解决的很low的问题。 Q:问题来源:之前写的selenium 的数据驱动测试用例, 登录界面。实例 但是在运行测试用例的时候,因为用例中的密码是数字,所以怎么都执行不起来,中间有事情就放下了一段时间。 T:Testdata: admin/1234 A:今天回头一点点排查错误吧。 1.会不会是测试数据出的问题?首先直接输入密码“1234”, 其他数据仍然是读取excel中数据,testpass; 关键代码如下: i=1 while (i

Selenium_Python_Note-Data Driven Testing(数据驱动测试)

1.What is Data Driven Testing? Definition from WiKi: ‘Data-driven testing (DDT) is a term used in the testing of computer software to describe testing done using a table of conditions directly as test inputs and verifiable outputs as well as the process where test environment settings and control are not hard-coded. In the simplest form … Read moreSelenium_Python_Note-Data Driven Testing(数据驱动测试)

Selenium_Python–search_client.py

继续写我的UI自动化测试,今天要完成一个完整的登陆,查找Client, 登出操作: 1.测试用例如下: 2.录制这个测试用例, 下图是已经录制好的Selenium 脚本: 其中: a. 紫色部分是comment(注释); b. 深绿色部分是加入的断言; c. 在某些可能需要页面加载的部分加入等待时间pause(3000), 表示等待3s; d. 淡绿色部分就是录制过程中的脚本,执行的时候是黄色,执行成功则显示为绿色; e. comment 和pause 部分视情况而定,这里都是需要在录制脚本成功以后手动加入的动作; 3.脚本回放: a. 左上方部分可以选择Fast/Slow调节回放的速度; b. 在页面加载较慢的地方加入pause, 比如login, search… c. 图上所示两个run button, 右边一个是执行当前测试用例,左边是执行当前测试套件下的所有用例,视情况而定; 4.加入断点: a. 在某个command行右击选择‘Set/Clear Start Point’ 可以设置/取消脚本从当前行执行; b. 在某个command行右击选择‘Execute this command’ 可以单独执行此行脚本,查看结果; 5.查看执行结果并导出用例: 将测试用例导出成.html文件,可以方便我们查看录制脚本的过程: 6.一般来说,导出的录制脚本都是需要修改和调试的,要不无法作为.py 文件执行 导出自动化脚本成python 2/unittest/web driver 程序,利用pycharm 编辑器打开调试,遇到几个问题: a. 之前手动加入的pause会有一些警告信息,导出的断言也会报错: # Warning: … Read moreSelenium_Python–search_client.py

Selenium_Python-search_user.py

笨哭TAT…千辛万苦总算是把第一个登陆&搜索的自动化测试给写出来了, 呜呜呜…… 还有很多东西不是很明白,暂时还搞不清楚,为什么用selenium webdriver 录制的测试用例重新play 的时候就是通不过! 崩溃,好吧,先把这个用例的编写过程记录下来吧,做一个教训! 1.用selenium 录制测试步骤,主要有以下几部: 输入url访问登陆页面; 输入username, password, click Submit button; 输入bcba, click ‘Search’ button 查找; 点击结果中的‘JBCBA1’; 2.回放录制过的测试用例,会出现如下几个方面的问题: >> ‘[error] Timed out after 30000ms’ timeout after clicking Submit button; >> ‘bcba’直接被输入在login 页面的username field, 囧,导致home page Search 的时候会报错; >> ‘[error] Element css=div.col-md-1 > button.btn.btn-primary not found’ ‘Search’ button is can’t found 3.大概知道问题出在什么地方了,先把脚本导出来(保存LoginAndSearch.py)再慢慢调试: … Read moreSelenium_Python-search_user.py

Selenium-Python Learning Notes_3

最近学习还是处在模拟别人的例子方面, 下面简单总结一下最近学习的tips: 1. Import – from selenium import webdriver 接着就可以用以下这些classes 了, webdriver.Firefox webdriver.FirefoxProfile webdriver.Chrome webdriver.ChromeOptions webdriver.Ie webdriver.Opera webdriver.PhantomJS webdriver.Remote webdriver.DesiredCapabilities webdriver.ActionChains webdriver.TouchActions webdriver.Proxy others like these: from selenium.webdriver.common.keys import Keys from selenium.common.exceptions import [TheNameOfTheExceptionClass] 2. Some attributes are callable (or methods) and others are non-callable (properties). All the callable attributes are ending with round brackets. eg: … Read moreSelenium-Python Learning Notes_3