selenium svg点击无效
时间: 2023-08-13 11:10:42 浏览: 68
根据引用\[1\],你遇到的问题是在使用Selenium自动化时,点击一个鼠标悬停才显示的SVG时失败。根据引用\[2\]的解决方法,你需要重复点击三次才能生效,并且点击区域必须是元素的中间。你可以使用以下代码来解决问题:
```python
for i in range(0,len(trs)):
if i == 0:
continue
else:
print("定位元素")
buttonsvg = trs\[i\].find_element(By.CSS_SELECTOR,'td:nth-child(4) > div > div > svg')
print("悬停在计划按钮上并点击3次后生效")
main.browser.execute_script(
"arguments\[0\].setAttribute('style', arguments\[1\]);",
buttonsvg,
"border: 2px solid red;"
)
action.move_to_element(buttonsvg).move_by_offset(9,7).click().perform()
action.move_to_element(buttonsvg).move_by_offset(9,7).click().perform()
action.move_to_element(buttonsvg).move_by_offset(9,7).click().perform()
sleep(1)
```
根据引用\[3\],如果直接使用XPath无法定位到该元素,你可以尝试使用正确的XPath路径来定位SVG元素。正确的XPath路径应该是:
```python
driver.find_element_by_xpath('//*\[@id="mainWrapper"\]/div\[2\]/div\[2\]/div\[2\]/div/div/div\[2\]/div/div\[2\]/div//*\[name()="svg"\]').click()
```
这样就可以实现对SVG的点击操作了。希望这些解决方法对你有帮助。
#### 引用[.reference_title]
- *1* *2* [Python Selenium 模拟点击一个鼠标悬停才显示的SVG时失败](https://blog.csdn.net/NidhoogJX/article/details/126705652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [web selenium div下的第一个svg](https://blog.csdn.net/weixin_43588508/article/details/125337714)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]