随笔分类 -  selenium

摘要:js="$(function(){$('div>a').attr('target','');});" self.dr.execute_script(js) 阅读全文
posted @ 2018-03-10 11:48 凯宾斯基 阅读(2941) 评论(0) 推荐(0)
摘要:前言 假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时。。。那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线程了,理论上开2个线程时间节省一半,开5个线程,时间就缩短五倍了。 项目结构 1.项目结构跟之前的设计 阅读全文
posted @ 2018-03-03 11:21 凯宾斯基 阅读(325) 评论(1) 推荐(0)
摘要:跟着上面的步骤修改好后,unittest断言写法要写成下面这样才能展示非乱码 阅读全文
posted @ 2018-02-23 19:44 凯宾斯基 阅读(524) 评论(0) 推荐(0)
摘要:控制层代码示例: def su2(self,ss,CI,action):#函数封装 I=1 ic=-1 while I < CI:#3种定位是5\2-4\1-3 if I==CI-1:#比上面的I少1 assert False,"找不到元素" ic=ic+1 I=I+1 try: eval("sel 阅读全文
posted @ 2018-02-02 15:37 凯宾斯基 阅读(526) 评论(0) 推荐(0)
摘要:控制层 测试用例层: 控制层示例代码: #coding=utf-8from selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdr 阅读全文
posted @ 2018-02-02 13:31 凯宾斯基 阅读(172) 评论(0) 推荐(0)
摘要:写法一: 写法二:加上列表的 写法三: 三种定位方式写法的(一种不行就另外一种,三种都不行直接抛错误) 实例: try: # "第三种定位" eval("WebDriverWait(self.dr,5,0.5).until(EC.presence_of_element_located((By."+s 阅读全文
posted @ 2018-02-02 00:21 凯宾斯基 阅读(152) 评论(0) 推荐(0)
摘要:#coding=utf-8 from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom sel 阅读全文
posted @ 2018-02-01 23:50 凯宾斯基 阅读(236) 评论(0) 推荐(0)
摘要:结合EVAL函数,我们可以把API放到测试用例那边去,就可以使用一个定位元素,测试用例可以使用多个API 发现eval里面可以拼接str。那么写成这样更顺眼 eval("self.dr.find_element_by_id('kw')."+a) 个人理解eval()函数 是把原来要先执行的一句话,先 阅读全文
posted @ 2018-02-01 21:22 凯宾斯基 阅读(163) 评论(1) 推荐(0)
摘要:调用js方法: execute_script(script,*args) Arguments对象: 类数组对象,代表传给一个function的参数列表,当前函数的内置属性,其长度是由实参个数决定而不是由形参个数决定 下面是高亮元素的函数: 阅读全文
posted @ 2018-01-25 12:49 凯宾斯基 阅读(215) 评论(0) 推荐(0)
摘要:有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了。例如,下面的情况: Python 页面主要通过“display:none”来控制整个下拉框不可见。这个时候如果直接操作这个下拉框,就会提示: exceptions.ElementNotVisibleException 阅读全文
posted @ 2018-01-25 11:21 凯宾斯基 阅读(2630) 评论(0) 推荐(0)
摘要:一、装饰器 1.用setUp与setUpClass区别 setup():每个测试case运行前运行teardown():每个测试case运行完后执行setUpClass():必须使用@classmethod 装饰器,所有case运行前只运行一次tearDownClass():必须使用@classme 阅读全文
posted @ 2018-01-12 22:55 凯宾斯基 阅读(353) 评论(0) 推荐(0)
摘要:以前看了虫师的并发,然后觉得以后如果遇上领导要求一个模块里的并发怎么办,然后就想到了下面的方法: 代码: 在原有的基础下再往casedir数组加模块三里面细分的对象。(这里可以封装成函数调用,工作需要时再说) 最后报告是一个目录一个表格 执行顺序示意图是: 那么假如一个模块的测试用例较多我们就可以控 阅读全文
posted @ 2018-01-12 14:40 凯宾斯基 阅读(417) 评论(0) 推荐(0)
摘要:用selenium启动,浏览器出现‘Chrome正在受到自动软件的控制’ 屏蔽的方法: # coding:utf-8 from selenium import webdriver # 加启动配置 option = webdriver.ChromeOptions() option.add_argume 阅读全文
posted @ 2018-01-08 15:19 凯宾斯基 阅读(1785) 评论(0) 推荐(0)
摘要:有时我们会碰到下拉框,WebDriver提供了Select类来处理下拉框。 如百度搜索设置的下拉框,如下图: Select类用于定位select标签。 select_by_value() 方法用于定位下接选项中的value值。 参考: http://www.testclass.net/seleniu 阅读全文
posted @ 2018-01-08 13:23 凯宾斯基 阅读(231) 评论(0) 推荐(0)
摘要:# 前言 selenium定位一组元素,批量操作循环点击的时候会报错:Element not found in the cache - perhaps the page has changed since it was looked up 实现目标:批量点击标题,获取每个页面的url地址 代码如下: 阅读全文
posted @ 2018-01-05 17:25 凯宾斯基 阅读(2068) 评论(0) 推荐(0)
摘要:1.查看浏览器的名字方法:name实例:drvier.name 2.删除浏览器所以的cookies方法:delete_all_cookies()实例:driver.delete_all_cookies() 3.删除指定的cookie方法:delete_cookie(name)实例:deriver.d 阅读全文
posted @ 2018-01-04 16:03 凯宾斯基 阅读(239) 评论(3) 推荐(0)
摘要:今天把手头有的一些关于selenium测试的资源整理了一下,分享出来。 1. 所有版本chrome下载 是不是很难找到老版本的chrome?博主收集了几个下载chrome老版本的网站,其中哪个下载的是原版的就不得而知了。 http://www.slimjet.com/chrome/google-ch 阅读全文
posted @ 2017-12-27 11:21 凯宾斯基 阅读(1720) 评论(2) 推荐(0)
摘要:首先打开命令行,在doc窗口输入:python -m pydoc -p 4567简单解释一下:python -m pydoc表示打开pydoc模块,pydoc是查看python文档的首选工具;-p 4567表示在4567端口上启动server;然后在浏览器中访问http://localhost。4567/,此时应该可以看到python中所有的Modules按ctrl+f,输入selenium,定位... 阅读全文
posted @ 2017-12-18 20:38 凯宾斯基 阅读(470) 评论(0) 推荐(0)
摘要:总执行代码: # coding=utf-8import unittest,os,timeimport HTMLTestRunnerimport threadingimport syssys.path.append('C:/Users/Dell/Desktop/CARE/program')#使用编辑器 阅读全文
posted @ 2017-09-08 09:24 凯宾斯基 阅读(7424) 评论(8) 推荐(1)
摘要:1,发现如果assertEqual里面放的是变量,不会展示中文出来 2,放的是中文(注意前面加u)就可以展示中文出来 改进后的方法:(可以放入变量去对比还可以展示中文的方法) 阅读全文
posted @ 2017-08-31 23:01 凯宾斯基 阅读(1217) 评论(0) 推荐(0)