无法在 Python Selenium 中单击“保存”B 按钮 - Chrome

问题描述

嗨,我有以下保存按钮的代码,需要使用 Python Selenium 单击。

1 <button ngcontent-jkv-c423-" " type="button" mat-raised-button=" " id="btnSave" class="mat-focus-indicator mat-raised-button mat-button-base mat-none mat_animation-noopable ng-star-inserted" data-dtname="Work.save"> 
2 <span class="mat-button-wrapper">
3 <span ngcontent-jkv-c423="" data-dtname="Work.save">
4 <i _ngcontent-jkv-c423-"" aria-hidden="true" class="fas fa-save">
5 </i> 
6 "Save "
7 </span>
8 </span>
9 <span matripple=" " class="mat-ripple mat-button-ripple">
10 </span><span class="mat-button-focus-overlay"></span>
11 </button>

T 尝试了以下代码

1 driver.find_element_by_xpath("//span[contains(text(),'Save ')]").click()
2 driver.find_element_by_class_name("fas fa-save").click()
3 driver.find_element_by_class_name("//span[@data-dtname='Work.save']").click()

但以上所有代码都在抛出错误

有没有其他方法可以做到这一点??

提前致谢。

解决方法

Save 看起来像一个文本节点,所以你不能使用这个 xpath :

//span[contains(text(),'Save ')]

您的 2nd attempt 看起来无效,原因 :-

不支持带空格的类名。

3rd attempt :-

find_element_by_class_name("//span[@data-dtname='WorkQueue.save']")

您正在通过 xpath,在 class name.

那么,为什么不id

driver.find_element_by_id('btnSave').click()

更新 1:

你能像这样以全屏模式启动浏览器吗。

driver.get('https://google.com')
driver.maximize_window()
,

据我所知,另一个元素覆盖了我想点击的元素,所以我做了以下代码:

save_ele=driver.findelement_by_xpath("**full xpath of the element**)
driver.execute_script("arguments[0].click()",save_ele)

这对我来说很好。