selenium项目中遇到的问题总结
问题:在pycharm中运行用例能成功,在命令行运行提示找不到com包
解决办法:添加一个PYTHONPATH的环境变量,值为工程目录的路径
当要查找的文本前后有换行时,用如下方法解决
//td[contains(text(),'保证金管理费')]
xpath方式定位同级元素的前面几个元素
els = self.driver.find_elements_by_xpath("//td[contains(text(),'保证金管理费')]/preceding-sibling::td[3]")
xpath方式定位同级元素的后面几个元素
el = self.driver.find_element_by_xpath("//td[text()='审核意见:']/following-sibling::td[1]/textarea")
使用xpath方法定位不包含某个属性的标签
如下定位的是input标签包含value属性但不包含disabled属性
//input[@value='YH'][not(@disabled)]
# 拉动滚动条到最后
js = "var q=document.documentElement.scrollTop=100000"
driver.execute_script(js)
有些弹出框使用上面的方法无法滚动则使用下面的方法:
target = driver.find_element_by_xpath("//th[text()='开始时间']")
driver.execute_script("arguments[0].scrollIntoView();", target)
执行jQuery去掉readonly属性
js = "$('input[name=" + el_name[1] + "]').removeAttr('readonly')"
self.driver.execute_script(js)
打开多个页面时切换操作
#获取当前窗口句柄
handle1 = driver.current_window_handle
#点击页面某个链接弹出第二个窗口
driver.find_element_by_xpath("//a[text()='" + MyTestCase.loanNo + "']").click()
#获取所有窗口的句柄
handles = driver.window_handles
handle2 = ""
#切换窗口
for handle in handles:
if handle != handle1:
driver.switch_to.window(handle)
handle2 = driver.current_window_handle
time.sleep(2)
#点击第二个窗口中的链接弹出第三个窗口
driver.find_element_by_xpath("//a[text()='编辑内审信息']").click()
# 切换到内审信息编辑窗口
#再次获取所有窗口句柄
handles = driver.window_handles
#切换到第三个窗口
for handle in handles:
if handle != handle1 and handle != handle2:
driver.switch_to.window(handle)
#注意: 操作完后要使用driver.close()关闭当前窗口
#并且要driver.switch_to.window(handle2)才能在第二个窗口上继续操作
注意: driver的创建需要写在setUpclass或者setUp方法里面,否则使用HTMLReport运行所有用例时会同时打开很多个窗口
selenium项目中遇到的问题总结的更多相关文章
- Python+Selenium进行UI自动化测试项目中,常用的小技巧4:日志打印,longging模块(控制台和文件同时输出)
在前段时间,为了给项目中加入日志功能,就想到了 logging 模块,百度logging一大推,都是各种复制的,并没有找到自己想要的结果:我的目的很简单,就是:在把日志写入文件的同时在控制台输出,更加 ...
- Python+Selenium进行UI自动化测试项目中,常用的小技巧3:写入excel表(python,xlsxwriter)
我们在项目中可能用到excel表生成,下面的代码就是对excel表的操作: import xlsxwriter import datetime class write_excel(): def __i ...
- Python+Selenium进行UI自动化测试项目中,常用的小技巧2:读取配置文件(configparser,.ini文件)
在自动化测试项目中,可能会碰到一些经常使用的但 很少变化的配置信息,下面就来介绍使用configparser来读取配置信息config.ini 读取的信息(config.ini)如下: [config ...
- Python+Selenium进行UI自动化测试项目中,常用的小技巧1:读取excel表,转化成字典(dict)输出
从今天开始我将会把在项目中遇到的问题,以及常用的一些技巧来分享出来,以此来促进自己的学习和提升自己:更加方便我以后的查阅. 现在要说的是:用Python来读取excel表的数据,返回字典(dict), ...
- Selenium WebDriver中一些鼠标和键盘事件的使用
转自:http://www.ithov.com/linux/133271.shtml 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击 ...
- selenium2 WebDriver 在asp.net项目中的应用
selenium2 WebDriver是一款跨平台的 自动化测试工具,它可以操纵浏览器,模拟用户行为,非常方便用户进行自动化测试. .net项目使用它,首先要通过 Visual Studio 的 nu ...
- Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析
加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景 在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...
- 转:总结Selenium WebDriver中一些鼠标和键盘事件的使用
在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...
- Selenium WebDriver 中鼠标和键盘事件分析及扩展[转载]
原文:http://www.ibm.com/developerworks/cn/java/j-lo-keyboard/ 概念 在使用 Selenium WebDriver 做自动化测试的时候,会经常模 ...
- TFS在项目中DevOps落地进程(下)
紧接上篇 TFS在项目中Devops落地进程(上) 再接着说TFS相关之前先插入一个番外篇,虽然跟TFS关系不大但跟DevOps关系很大,觉得有必要在此乱入一下. 番外篇--监控之Applicatio ...
随机推荐
- C# OpenCv DNN 人脸检测
using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using Syst ...
- Flux中的map、flatMap、concatMap的区别
flatMap.map和concatMap都是在Flux中用于进行数据转换和处理的方法,但它们在处理元素和顺序上有一些区别: map方法: map方法用于对Flux中的每个元素进行一对一的转换. 对于 ...
- java使用Ffmpeg合成音频和视频
1.Maven依赖 <!-- 需要注意,javacv主要是一组API为主,还需要加入对应的实现 --> <dependency> <groupId>org.byte ...
- archlinux 时间,时钟设置与详解,时区对应的时间不正确
参照 https://wiki.archlinux.org/title/System_time 1.使用命令查看时间 timedatectl 显示类似 Local time: Wed 2024-01- ...
- 【已解决】启动Hmaster失败 master.HMaster: Unhandled exception. Starting shutdown.
- #线段树#洛谷 4588 [TJOI2018]数学计算
题目传送门 分析 由于曾经做过原题 所以就直接说了,因为每个数最多被除掉一次 所以可以用线段树维护区间乘,也就很简单了,删除就单点修改就行了 代码 #include <cstdio> #i ...
- 你不知道的java对象序列化的秘密
目录 简介 什么是序列化 重构序列化对象 序列化不是加密 使用真正的加密 使用代理 Serializable和Externalizable的区别 总结 简介 你知道序列化可以使用代理吗?你知道序列化的 ...
- 李东山:如何让 OpenHarmony 支持低功耗蓝牙芯片 GR551x
编者按:在 OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献.分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点. 李东山 深圳市汇顶 ...
- OpenHarmony 3.2 Beta1版本正式发布
5 月 31 日,开放原子开源基金会正式发布 OpenAtom OpenHarmony(以下简称"OpenHarmony")3.2 Beta1 版本. 全球开发者可通过Gite ...
- openGauss/MogDB调用C FUNCTION
openGauss/MogDB 调用 C FUNCTION 摘要 之前写过一篇关于postgresql 自定义函数实现,通过 contrib 模块进行扩展的帖子,今天和恩墨工程师进行了一些交流,在 M ...