我在用pytest+python+selenium做WEB-UI自动化测试的过程中,遇到如下几个问题
1、
一个如图所示的按钮,我的定位方式是:
new_loc = (By.XPATH, '//span[contains(text(),"确定")]')
然后click()
最开始报了一个status为500的错误,没有截图,通过右键-复制XPATH定位,修改为:
new_loc = (By.XPATH, '//*[@id="modal-footer"]/button[2]/span')
以后报下图400的错:

为了解决这个问题搜了一下,可能有两种情况:
1、等待时长不够,加等待时长,如果强制等待不行就试试显示等待
2、这个元素可能是隐藏的,使用如下代码去定位
e = self.driver.find_element(*loc)
ActionChains(driver).move_to_element(e).perform()
我试了两种都不行,就用Selenium IDE模拟了一下点击这个元素,发现它对这个按钮的定位是
(By.XPATH,'//div[@id="modal-footer"]/button[2]/span)[2]')
跟我右键复制的区别在于前面的div和*,
去界面中看了一下,Selenium IDE模拟的,能唯一定位

而鼠标右键复制的,定位并不唯一

改一下定位,问题解决
2、项目实践中存在一个界面,不同页签下有不同子表的情况,那切换页签操作该页签下的子表,就得定位不同的子表
涉及到公司隐私,就不放图了
解决办法:不用数组遍历那么复杂的办法,刚开始我也想复杂了,以为四个页签用的是同一个表格,切换以后老定位不到,这时候不要再一个一个鼠标右键复制XPATH了,观察一下其实不同表格的名字是有顺序的,类似这样
就是这些细节决定我们能不能定位到元素
3、接下来我要连接数据库,使用pip在终端安装 cx_oracle时,提示

(终端字体忽然就这样了,半角显示也没问题,没找到解决办法,有大佬看到能跟我说一下怎么解决吗)
查了一下可能是下面的原因:
1、pip没有安装对,在cmd中输入python,出现版本则说明python装对了,再检查pip,看有没有装对…不展开介绍了哈,首先排除这个问题,我在虚拟环境中装的,不会受本地影响(我觉得)
2、最近学习性能测试,安装了LoadRunner,看到有博主说这个软件也有pip,系统无法识别pip

最后我忽然想起来,我用的是python3.9,使用pip命令应该写为pip3,解决问题