【问题标题】:Selenium and Python to find elements and text?Selenium 和 Python 查找元素和文本?
【发布时间】:2012-08-14 17:28:06
【问题描述】:

当我访问某个网页时,我试图找到某个元素和一段文字:

<span class="Bold Orange Large">0</span>

这不起作用:(它给出了复合类名称的错误......)

elem = browser.find_elements_by_class_name("Bold Orange Large")

所以我尝试了这个:(但我不确定它是否有效,因为我不太了解在 selenium 中执行 css 选择器的正确方法......)

elem = browser.find_elements_by_css_selector("span[class='Bold Orange Large']")

找到 span 元素后,我想找到 (内容)中的数字

num = elem.(what to put here??)

任何有关 CSS 选择器、类名和查找元素文本的帮助都会很棒!

谢谢。

哦!我的另一个问题是这些确切的跨度元素有多个,但里面的数字不同。我该如何处理?

【问题讨论】:

    标签: python selenium webdriver


    【解决方案1】:

    你想:elem.text 得到“里面的号码”。

    解释:

    在您的示例中,elem 是 webdriver 的 WebElement 类的实例(来自 selenium.webdriver.remote.webelement

    一个 WebElement 实例有几个属性,包括:

    • tag_name
    • text
    • size
    • location
    • parent
    • id

    .text 属性包含“内容”


    “我的另一个问题是 这些精确跨度元素的倍数 ..我该如何处理?”

    请不要同时问几个问题..它不适用于 SO 的格式。

    但基本上,使用find_elements_* 而不是find_element_*。然后,您的定位器可以返回匹配的 WebElement 实例列表,而不是单个匹配实例...您可以进一步过滤。

    【讨论】:

    • 对这个问题感到抱歉......不过答案很好!!实际上,我想知道为什么你的名字看起来很眼熟,然后我昨晚在查找 python 和 selenium 时才意识到我在你的网站上!那里没有太多,所以你的在第一页上......
    • text 的最新文档是 WebElement.text
    【解决方案2】:

    问题实际上在于类名,因为空格导致元素具有 3 个不同的类(由空格分隔)

    如果您将类设置为Bold-Orange-Large,则它应该可以使用elem.text 方法按预期工作。

    【讨论】:

      猜你喜欢
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      • 2022-08-10
      • 2020-12-07
      • 1970-01-01
      • 2022-07-13
      • 2020-02-12
      相关资源
      最近更新 更多