首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用selenium找到svg元素?

如何用selenium找到svg元素?
EN

Stack Overflow用户
提问于 2022-02-17 16:45:45
回答 2查看 1.4K关注 0票数 1

我正在构建一个机器人,我试图让它点击DMs图标,但我不知道如何选择它。

我尝试使用Xpath进行选择,但似乎无法导航到图标。下面是Instagram用于DMs图标的html代码:

代码语言:javascript
复制
<svg aria-label="Messenger" class="_8-yf5 " color="#262626" fill="#262626" height="24" role="img" viewBox="0 0 24 24" width="24">

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-17 17:51:55

您必须应用稍微不同的定位器策略来找到svg

以下是起作用的原因:

代码语言:javascript
复制
driver.find_element(By.XPATH, "//*[name()='svg']")

假设这是惟一的svg元素(如查询中所提供)

来自同一DOM行的多个属性的组合:

代码语言:javascript
复制
//*[name()='svg' and @aria-label='Messenger']
票数 3
EN

Stack Overflow用户

发布于 2022-02-17 18:11:19

所需的元素是svg元素,因此要对元素进行https://stackoverflow.com/a/70077251/7429447,就必须为https://stackoverflow.com/a/54194511/7429447诱导WebDriverWait,并且可以使用以下任何一个https://stackoverflow.com/a/48376890/7429447

  • 使用CSS_SELECTOR: 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,“svgaria-WebDriverWait=‘Messenger’”)).click()
  • 使用XPATH: (驱动程序,20).until(EC.element_to_be_clickable((By.XPATH,"//*name()='svg‘和@aria-WebDriverWait=’Messenger‘).click()
  • 注意事项:您必须添加以下导入: 从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC

参考文献

您可以在以下网站找到关于与SVG元素交互的几个相关讨论:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71162169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档