selenium
yinlin330
这个作者很懒,什么都没留下…
展开
-
python之selenium调用js(execute_script)
在编写自动化程序的时候,会遇到弹出新窗口的情况,而程序总是默认在第一个窗口页定位元素,这样,就会定位不到元素,程序报错。举一个实例说明,如下的网站在第一窗口页面点击“登陆”,会弹出一个新的窗口页输入用户名/密码,如果程序不做出来,在定位用户名的时候,程序会在第一个窗口页中查询,所以会报错 要解决这个问题有两种方法: 首先,弄明白为什么点击“登录”按钮会弹出一个新的窗口,下面我们来检查一...原创 2018-09-11 14:34:25 · 92232 阅读 · 3 评论 -
【selenium+python】:弹出框的处理
涉及到弹出框的操作,怎么办?先把浏览器切换到弹出框上,点击确定或取消代码如下:# 弹出框的处理?time.sleep(3)driver.switch_to.alert.accept() # 确定driver.switch_to.alert.dismiss() # 取消# 获取弹出框里的文本信息txt=driver.switch_to.alert.textprint(txt)i...原创 2019-06-27 17:38:44 · 2111 阅读 · 0 评论 -
【已解决】:invalid selector: An invalid or illegal class name was specified
报错提示的意思是,无效选择器:指定的类名无效或非法。检查定位元素如下图:检查元素发现有一个class属性,用class属性定位元素代码如下:driver.find_element_by_class_name('ui-button-text').click() #报错执行报错如下:解决办法:用xpath定位试试,右键拷贝copy xpath,调试代码执行成功。driver.fin...原创 2019-07-03 10:49:49 · 18524 阅读 · 1 评论 -
【selenium+python】:下拉框的定位
本篇文章讲的是select属性的下拉框。遇到下拉框的时候,我们不能用click或send_kay。那使用什么呢?答案是select方法,但是网页元素中没有select这个方法。怎么办呢?答案是去创建一个下拉框的类,让这个类继承网页元素中的所有方法,并写出自己的方法。怎么用呢?先找出页面元素,转换成下拉框的类型,然后直接调用选择的方法。下面看一个例子:1、选择城市,河北省代码写法:...原创 2019-06-27 15:03:49 · 3432 阅读 · 0 评论 -
【selenium】:基于unittest框架的单元测试脚本
这是一个购物流程的unittest单元测试脚本。有两个关注点:1、调用了一个读取CSV文件的方法read();from readCsvfile import read #在同一个路径下,才能import2、重写了父类的方法,@classmethod 直接调用,不需要实例化;完整的代码演示如下:# coding=utf-8import timefrom selenium impo...原创 2019-07-02 10:10:05 · 473 阅读 · 0 评论 -
【selenium+python】:自动化环境搭建
一、环境准备安装python可以从python官网上下载,我安装的是python3.6(cmd中输入python可查看)安装selenium包 用pip命令行安装,pip是一个专门安装python包的工具,这个安装好之后,后面安装其它的包就非常方便了。 首先安装pipeasy_install pip 安装好后,安装seleniumpip install selenium 查...原创 2019-06-25 10:56:31 · 273 阅读 · 0 评论 -
【已解决】异常报错:Message: Currently focused window has been closed.
运行代码:from selenium import webdriverfrom selenium.webdriver import ActionChainsdriver=webdriver.Ie()driver.get("http://10.3.231.64:7001/pension_sec/")driver.switch_to.frame('fraInterface')driver....原创 2019-01-07 15:06:15 · 7861 阅读 · 3 评论 -
【selenium+python】:怎么读取CSV文件?
import csvimport osdef read():path_base=os.path.dirname(file) # 获取当前文件的目录path=path_base.replace(“day1219”,“data\checksheet.csv”) # 替换目录print(path)# 打开文件file,读取file中的数据data,按照行row的方式展现file=open...原创 2018-12-26 19:58:53 · 1719 阅读 · 0 评论 -
selenium+python自动化(完整脚本二)
import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.implicitly_wait(3)driver.get("http://172.31.5.57/")driver.find_element_by_link_text("登录").click()# 1.登录latest_window =...原创 2018-09-07 17:20:48 · 1771 阅读 · 0 评论 -
selenium+python自动化-怎么定位日历?
一)设置生日 如下图,如果年、月、日一个一个的点灵活性差,稳定性也差。 检查元素,发现日历控件,其实就是一个文本输入框,那么就可以直接用send_keys输入日期。 但是,检查元素,发现标签中存在一个readonly属性的元素,表示这是一个只读的输入框,不能手写。 需要每次输入日期前,删除readonly属性即可。但是selenuim没有提供删除元素属性的方法。那么,怎么办呢?...原创 2018-09-07 17:17:26 · 3382 阅读 · 1 评论 -
selenium+python自动化- 浏览器窗口切换 switch_to_window
如果把下面几行代码注释掉,我们会发现运行报错位置在“输入用户名”, 这是因为,第二步点击“登陆”时,浏览器又弹出了一个新的窗口,程序每次都会去第一个窗口中寻找元素,而“输入用户名”在弹出的第二个窗口标签里,所以是找不到的。#latest_window=driver.window_handles[-1]#driver.close() 关闭窗口,保证浏览器只有一个窗口#driver.swit...原创 2018-09-07 15:08:30 · 8334 阅读 · 4 评论 -
selenium+python自动化-元素定位法
一)元素定位原则首选id, 没有id,选择name, id,name都没有,选择class 遇到a标签,才能使用link_text 前几种方式都不可以,考虑copy xpathid,name,class这三种元素定位比较简单,在这里不再介绍。 1、link_text定位元素...原创 2018-09-06 17:36:15 · 1164 阅读 · 1 评论 -
selenium+python自动化测试框架unittest
1、首先,导入unittest代码库import unittest #是python核心内置的代码库2、继承unittest代码库中TestCase这个测试类 子类将继承父类中的所有属性和方法,并且可以扩展自己的属性方法 python推荐文件名首字母小写,雷鸣首字母大写,其他字母保持一样 类名后面的小括号表示类名 class UnittestDemo(unittest.Test...原创 2018-09-12 10:52:41 · 843 阅读 · 0 评论 -
【已解决】selenium启动浏览器报错:'chromedriver' executable needs to be in PATH
运行:from selenium import webdriverdriver = webdriver.Chrome()报错如下图: 排查问题及解决过程如下:第一步:检查浏览器版本与驱动器的版本是否一致。 使用selenium启动谷歌Chrome浏览器的时候,是需要用到chromedirver驱动器的,而且两者之间的版本是需要匹配的。下面提供是的谷歌浏览器版本,对应的...原创 2018-09-05 17:24:28 · 4339 阅读 · 0 评论 -
【selenium+python】:Html嵌套iframe/frame表单结构的切换
下图所示,定位元素的时候发现,元素在一个iframe架构里,定位元素的时候需要先切换到iframe架构里,再定位。1、切换到iframe架构中frame1=driver.find_element_by_id('rightFrame')driver.switch_to.frame(frame1) #把iframe赋值给frame1,然后传递给方法driver.find_element_by...原创 2019-07-03 15:33:27 · 1766 阅读 · 0 评论