解决driver.findElement(By)运行到此处报null指针问题

1.由于自动化页面上的元素定位太多,主要是通过By来定位,而By提供了id,xpath,name差不多就可以定位到元素

可以使用一个配置文件存储页面上的定位By值,然后从配置文件获取by值,行程by方式与by值的map对

这里遇到一个问题,就是driver.findElement(By)的时候会提示这个结果是void,无法转换成WebElement类型

定位了一下,发现是map.keySet()这个取出键值会去重

设计模式:

配置文件中存储(可理解名字:通过F12看到的name或者id或者xpath路径)

测试用例中准备数据(By的方式比如name/id/xpath:xpath的值)

页面准备定位所有元素方法,Map<String,WebElement> locateElements(测试用例中数据Map,配置文件p)

要注意从配置文件中取出来的值都是String类型,所以不是By值,自然无法定位到元素

时间: 2024-10-13 05:43:22

解决driver.findElement(By)运行到此处报null指针问题的相关文章

解决Pyqt打包后运行报错:应用程序无法启动 因为程序的并行配置不正确

做了一个生成二维码的小程序:http://www.cnblogs.com/dcb3688/p/4241048.html 直接运行脚本没问题,用pyinstaller打包后再运行就直接报错了: 应用程序无法启动 因为程序的并行配置不正确.有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe 工具. 网上找的解决方法: 1.   安装Microsoft Visual C++ 2008 Redistributable 2.  开始 - 运行(输入services.msc)- 确

运行python代码报错UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xe7 in position 91: ordinal not in range(128)的解决办法

1.通过搜集网上的资料,自己多次尝试,问题算是解决了,在代码中加上如下几句即可: import sys reload(sys) sys.setdefaultencoding('utf-8') 2.原因就是Python的str默认是ascii编码,和unicode编码冲突,混淆了python2 里边的 str 和 unicode 数据类型. 3.python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii. 运行python代码报错UnicodeDec

Android Studio运行安卓程序报Failure [INSTALL_FAILED_OLDER_SDK]的解决办法

http://androidren.com/index.php?qa=320&qa_1=android-studio运行安卓程序报failure-install_failed_older_sdk 一般情况是最小支持的sdk版本高于当前设备的Android系统版本,这时候需要修改manifest和build.gradle两个地方. 修改源码app目录下的"build.gradle"文件,将其中的minSdkVersion .targetSdkVersion 修改为跟manifes

一招解决OpenERP8.0安装旧版模块报错

有喜欢尝鲜的网友开始玩8.0了,可是版本还没发布,社区的很多特别好的模块还没有升级到8,所以经常碰到模块无法安装的问题. No module name osv 网友提出将模块的 from osv import osv,fields 改为 from openerp.osv import osv,fields 其实这是一个编程规范问题,旧版模块代码里很多这种导入方式,一个一个改对于不懂代码的或者openerp新手是不现实的. 众所周知,openerp的运行入口是openerp-server.py,在

解决小米手机不能运行Android Studio程序的问题

转载自:解决小米手机不能运行Android Studio程序的问题 问题描述 Android Studio升级到2.3版本之后,小米手机MIUI8不能运行Android Studio程序,报如下错误: Installation failed with message Failed to establish session. It is possible that this issue is resolved by uninstalling an existing version of apk i

解决Firefox已阻止运行早期版本Adobe Flash

解决Firefox已阻止运行早期版本Adobe Flash 类别    [随笔分类]web 最近火狐浏览器不知抽什么风,每次打开总提示"Firefox已阻止(null)运行早期版本的Adobe Flash".要命的是它提示的解决办法根本不管用,最终还是自己在网上找了插件才解决的.下面看看具体操作吧. 方法/步骤 先看现象. 它会有"继续屏蔽"和"允许"两个按钮. 点了"允许"后会提示"本次允许"和"

VirtualBox创建虚拟电脑、运行Genymotion模拟器报错

当安装完Genynition关于Android应用的调试模拟器之后,在Genymotion运行的平台virtualBox:VirtualBox创建虚拟电脑.运行Genymotion模拟器报错: 错误卖相是这样的<这张图是截取的别人的,但是我敢说我的解释才够让你一目了然>: 对于这类错误的解决办法,我亲自运行了下并解决了自己的问题: 首先:window+R<快捷键> 进入运行页面  输入: CMD        打开运行窗口,首先找到自己安装VirtualBox模拟器的文件安装写入位

解决docker images,info,-d等命令报错的问题

解决docker images,info,-d等命令报错的问题 楼主因为在搞docker,所以出现了好多的问题,百度上不好找,谷歌的话,楼主不会翻墙.不管给大家推荐一个软件:蓝灯. 楼主不管输入那个命令,都出现了: FATA[0000] Cannot connect to the Docker daemon. Is 'docker -d' running on this host? 以及类似的错误,就连docker version命令都报错了,楼主开始找啊找,找到了好多东西,结果发现没一个能行的

解决python在cmd运行时导入包失败,出现错误信息 &quot;ModuleNotFoundError: No module named ***&quot;

1.下图为我的自动化测试工程结构图 我通过运行run.bat批处理文件,调用cmd控制台运行start_run.py来开始我的自动化测试,但是出现如下错误: 大家可能知道我们的工程在IDE(Pycharm)中运行和我们在cmd中运行的路径是不一样的,在pycharm中运行时, 会默认pycharm的目录+我们的工程所在目录为运行目录,而在cmd中运行时,会以我们的工程目录所在目录来运行 而在import包时,会首先从pythonPATH的环境变量中来查看包,如果没有你的PYTHONPATH中所包