Selenium:如何识别铁图标?

发布于 2025-01-09 06:18:37 字数 228 浏览 1 评论 0原文

我没有找到一个优雅的解决方案来解决 Selenium 铁图标问题。

<iron-icon style="..." icon="vaadin:sign-out" title="logout"></iron-icon>

我用 Xpath 做了它,它可以工作,但我想要一个更优雅的解决方案,因为 Xpath 就是这样的东西。

有谁知道一个技巧吗?

I do not find an elegant solution to address with Selenium an iron-icon.

<iron-icon style="..." icon="vaadin:sign-out" title="logout"></iron-icon>

I made it with Xpath and it works but I would like to have a more elegant solution because Xpath is such thing.

Does anyone know a trick?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

宛菡 2025-01-16 06:18:37

元素来自 svg< /em> 命名空间。

要单击 元素,您必须引发 WebDriverWait elementToBeClickable() / element_to_be_clickable(),您可以使用以下任一定位器策略

  • 使用JavaCSS_SELECTOR< /em>:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("iron-icon[icon='vaadin:sign-out']"))).click();
    

  • 使用PythonXPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[name()='svg']//*[name()='iron-icon')和 @title='logout']"))).click()
    
  • 注意:对于Python客户端,您必须添加以下导入:< /p>

    从 selenium.webdriver.support.ui 导入 WebDriverWait
    从 selenium.webdriver.common.by 导入
    从 selenium.webdriver.support 导入预期条件作为 EC
    

参考资料

您可以在以下位置找到一些有关与 SVG 元素交互的相关讨论:

The <iron-icon> element is from the svg namespace.

To click on the <iron-icon> element you have to induce WebDriverWait for the elementToBeClickable() / element_to_be_clickable() and you can use either of the following locator strategies:

  • Using Java and CSS_SELECTOR:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("iron-icon[icon='vaadin:sign-out']"))).click();
    
  • Using Python and XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[name()='svg']//*[name()='iron-icon' and @title='logout']"))).click()
    
  • Note : For Python clients you have to add the following imports :

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

References

You can find a couple of relevant discussions on interacting with SVG elements in:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文