Python Selenium同名按钮定位:选中2022年11月对应按钮
定位新标签页内元素失败的解决方法
问题场景
需要定位HTML结构中包含“2022 November”的<div>内的按钮,该结构在各月份模块中重复出现,对应HTML代码如下:
<div class="reportTitleNonMobile ng-binding"> 2022 November <button class="myButton" ng-show="!gridFile.monthOpen" ng-click="toggleMonthReport(gridFile)">Open</button> <button class="myButton ng-hide" ng-show="gridFile.monthOpen" ng-click="toggleMonthReport(gridFile)">Close</button> </div>
遇到的问题
尝试了多种元素定位方式(Xpath、link_text、class_name等)均失败,报错信息:no such element: Unable to locate element,即使使用他人建议的Xpath也无效。在Chrome开发者工具中可以正常找到目标元素,但代码执行时始终无法定位。
问题原因
网站打开新标签页后,代码仍在原标签页中查找元素,未切换到新标签页的上下文。
解决方法
执行标签页切换代码,将浏览器上下文切换到新标签页:
driver.switch_to.window(driver.window_handles[1])
切换后即可正常定位目标元素。
内容的提问来源于stack exchange,提问作者Renison Correya
相关产品推荐
相关产品推荐

