selenium+python自动化测试--隐藏元素
最近工作中遇到了关于隐藏元素如何定位与点击的问题,下面就总结下解决过程。
场景:在输入框中输入搜索条件(admin),下面出现相应的搜索结果,选择搜索结果。搜索结果区在未搜索前和选择结果后为隐藏状态。
1、思路分析:
(1)点击编辑按钮(出现普通弹框)
(2)输入搜索条件
(3)选择搜索结果
(4)点击确定按钮进行保存
2、初步代码编写
文件名称:architectureCard.py
from selenium import webdriver import time base_url="url地址" driver = webdriver.Firefox() driver.get(base_url+"/6403/card") driver.maximize_window() #点击编辑按钮 driver.find_element_by_css_selector(".sc-ebFjAB.jLsEQY.sc-rBLzX.crxYrd").click() #输入搜索条件 driver.find_elements_by_tag_name("input")[6].send_keys("admin") time.sleep(2) #选择搜索值 js = 'document.getElementsByClassName("bp3-menu-item bp3-popover-dismiss")[1].click()' driver.execute_script(js) time.sleep(2) #点击确定 driver.find_element_by_css_selector(".bp3-button.bp3-intent-primary.sc-cLQEGU.hOClYU").click() time.sleep(3) driver.quit()
3、代码优化,页面封装与调试
文件名称:architectureCard.py
from selenium import webdriver from common.base import Base import time base_url = "url地址" class EditArch(Base): #编辑架构卡按钮 editarch = ("css selector",".sc-ebFjAB.jLsEQY.sc-rBLzX.crxYrd") #责任人输入框,取输入框第七个 person = ("tag name","input") #确定按钮 submit = ("css selector",".bp3-button.bp3-intent-primary.sc-cLQEGU.hOClYU") def editArch(self): #点击编辑按钮 self.click(self.editarch) #输入搜索条件 aa=self.finds(self.person) aa[6].send_keys("admin") time.sleep(2) #选择搜索结果 js = 'document.getElementsByClassName("bp3-menu-item bp3-popover-dismiss")[1].click()' self.driver.execute_script(js) #点击确定按钮 self.click(self.submit) if __name__ == '__main__': driver = webdriver.Firefox() driver.get(base_url+"/6403/card") driver.maximize_window() time.sleep(2) editA = EditArch(driver) editA.editArch() time.sleep(2) driver.quit()
通过上图和代码可以发现,隐藏元素(搜索结果)可以定位到,但是在选中(点击)搜索结果时,却没有使用普通定位加click的方法,是因为click在点击隐藏元素的时候很难点击到,用js方法即可解决隐藏元素点击问题。
4、代码运行结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix