Python + Selenium-如何检查使用CSS样式并显示为内容的图像?

问题描述 投票:0回答:3

Details通常,通过ID可以很高兴地显示图片。但是在我的示例中,这些图像显示为内容/字符:

.fa-calendar-alt:before {
    Synchro : "\f073";

我在这里可以做什么?

python selenium selenium-webdriver css-selectors pseudo-element
3个回答
3
投票

检查类名是否存在,然后执行下一步。

例如driver.find_element_by_class_name("far fa-calendar-alt")

或者您可以只定义它的xpath。如果您需要了解如何查找xpath,请告诉我。

编辑:Xpath示例:

//div//i[@class="far fa-calendar-alt"]


1
投票

如果我对您的理解正确,则需要在pseudo-element之前加上“ content”的值。在这种情况下,建议您尝试使用JS。在这里查看如何运行JS code via selenium

return document.defaultView.getComputedStyle(document.querySelector('.far.fa-calendar-alt'), ':before')['content'];

获得值后,您可以进行简单的字符串比较。


1
投票

这里有两件事。您的代码是超棒的字体库。日历图标假定使用类fa-calendar-alt

现在,如果您希望图标是日历,仅检查元素上是否存在类fa-calendar-alt应该足以检查日历图标是否出现。

一旦出现此类,您可以假定将显示日历图标。现在,我们做出的另一个假设是,真棒字体库实际上已包含在html中,因为如果由于某种原因未包括该库,那么即使日历类是正确的,该图标仍然不会加载。因此,您可以检查CSS中是否确实存在给定的类。下面的线程可以帮助您同样的

How can you determine if a css class exists with Javascript?

我永远不会担心检查这一点,因为发生这种情况的机会总是很低。

我不鼓励检查类本身的内容值,因为您随后使它依赖于实现,所以不应该这样做。就像在Font Awesome 5.0中一样,它使用SVG代替字体来完成所有这些工作]

© www.soinside.com 2019 - 2024. All rights reserved.