问题:在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项目中遇到的问题总结的更多相关文章

  1. Python+Selenium进行UI自动化测试项目中,常用的小技巧4:日志打印,longging模块(控制台和文件同时输出)

    在前段时间,为了给项目中加入日志功能,就想到了 logging 模块,百度logging一大推,都是各种复制的,并没有找到自己想要的结果:我的目的很简单,就是:在把日志写入文件的同时在控制台输出,更加 ...

  2. Python+Selenium进行UI自动化测试项目中,常用的小技巧3:写入excel表(python,xlsxwriter)

    我们在项目中可能用到excel表生成,下面的代码就是对excel表的操作: import xlsxwriter import datetime class write_excel(): def __i ...

  3. Python+Selenium进行UI自动化测试项目中,常用的小技巧2:读取配置文件(configparser,.ini文件)

    在自动化测试项目中,可能会碰到一些经常使用的但 很少变化的配置信息,下面就来介绍使用configparser来读取配置信息config.ini 读取的信息(config.ini)如下: [config ...

  4. Python+Selenium进行UI自动化测试项目中,常用的小技巧1:读取excel表,转化成字典(dict)输出

    从今天开始我将会把在项目中遇到的问题,以及常用的一些技巧来分享出来,以此来促进自己的学习和提升自己:更加方便我以后的查阅. 现在要说的是:用Python来读取excel表的数据,返回字典(dict), ...

  5. Selenium WebDriver中一些鼠标和键盘事件的使用

    转自:http://www.ithov.com/linux/133271.shtml 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击 ...

  6. selenium2 WebDriver 在asp.net项目中的应用

    selenium2 WebDriver是一款跨平台的 自动化测试工具,它可以操纵浏览器,模拟用户行为,非常方便用户进行自动化测试. .net项目使用它,首先要通过 Visual Studio 的 nu ...

  7. Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

    加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...

  8. 转:总结Selenium WebDriver中一些鼠标和键盘事件的使用

    在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...

  9. Selenium WebDriver 中鼠标和键盘事件分析及扩展[转载]

    原文:http://www.ibm.com/developerworks/cn/java/j-lo-keyboard/ 概念 在使用 Selenium WebDriver 做自动化测试的时候,会经常模 ...

  10. TFS在项目中DevOps落地进程(下)

    紧接上篇 TFS在项目中Devops落地进程(上) 再接着说TFS相关之前先插入一个番外篇,虽然跟TFS关系不大但跟DevOps关系很大,觉得有必要在此乱入一下. 番外篇--监控之Applicatio ...

随机推荐

  1. C# OpenCv DNN 人脸检测

    using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using Syst ...

  2. Flux中的map、flatMap、concatMap的区别

    flatMap.map和concatMap都是在Flux中用于进行数据转换和处理的方法,但它们在处理元素和顺序上有一些区别: map方法: map方法用于对Flux中的每个元素进行一对一的转换. 对于 ...

  3. java使用Ffmpeg合成音频和视频

    1.Maven依赖 <!-- 需要注意,javacv主要是一组API为主,还需要加入对应的实现 --> <dependency> <groupId>org.byte ...

  4. archlinux 时间,时钟设置与详解,时区对应的时间不正确

    参照 https://wiki.archlinux.org/title/System_time 1.使用命令查看时间 timedatectl 显示类似 Local time: Wed 2024-01- ...

  5. 【已解决】启动Hmaster失败 master.HMaster: Unhandled exception. Starting shutdown.

  6. #线段树#洛谷 4588 [TJOI2018]数学计算

    题目传送门 分析 由于曾经做过原题 所以就直接说了,因为每个数最多被除掉一次 所以可以用线段树维护区间乘,也就很简单了,删除就单点修改就行了 代码 #include <cstdio> #i ...

  7. 你不知道的java对象序列化的秘密

    目录 简介 什么是序列化 重构序列化对象 序列化不是加密 使用真正的加密 使用代理 Serializable和Externalizable的区别 总结 简介 你知道序列化可以使用代理吗?你知道序列化的 ...

  8. 李东山:如何让 OpenHarmony 支持低功耗蓝牙芯片 GR551x

    编者按:在 OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献.分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点. 李东山 深圳市汇顶 ...

  9. OpenHarmony 3.2 Beta1版本正式发布

    5 月 31 日,开放原子开源基金会正式发布 OpenAtom OpenHarmony(以下简称"OpenHarmony")3.2 Beta1 版本.   全球开发者可通过Gite ...

  10. openGauss/MogDB调用C FUNCTION

    openGauss/MogDB 调用 C FUNCTION 摘要 之前写过一篇关于postgresql 自定义函数实现,通过 contrib 模块进行扩展的帖子,今天和恩墨工程师进行了一些交流,在 M ...