【问题标题】:How to retrieve the title attribute through Selenium using Python?如何使用 Python 通过 Selenium 检索标题属性?
【发布时间】:2020-01-02 15:22:59
【问题描述】:

这是我的代码:print(browser.find_element_by_partial_link_text("followers").get_attributes("title"))。我正在使用find_element_by_partial_link_text,因为也许每个用户的 xpath 可能都是唯一的。但是我的代码什么也没返回。这是元素的地址:

<li class=" LH36I">
  <a class=" _81NM2" href="/username/followers/">
    <span class="g47SY lOXF2" title="3,862,378">3.8m</span> 
      " followers"
  </a>
</li>

所以我的问题是如何使用 find_element_by_partial_link_text 获取标题中的值?提前致谢。

已解决:您可以查看 DebanjanB 的答案。

【问题讨论】:

  • 看起来你想提取 span 元素的标题,但是你会找到并捕获 link 元素。尝试查看 xpath,首先查找包含“followers”的链接,然后再往下走一步到 span,提取其标题。

标签: python selenium xpath css-selectors webdriverwait


【解决方案1】:

title 的文本,即 3,862,378 不在任何 &lt;a&gt; 标记内。因此你不能使用find_element_by_partial_link_text()。此外,该元素是动态元素,因此您必须为所需的visibility_of_element_located() 诱导 WebDriverWait,您可以使用以下解决方案:

  • 使用XPATH

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@href='/username/followers/' and contains(., 'followers')]/span"))).get_attribute("title"))
    
  • 使用CSS_SELECTOR

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a[href='/username/followers/']>span"))).get_attribute("title"))
    

注意:根据文档,实际方法是get_attribute(name),但不是get_attributes()

【讨论】:

  • 对不起 :) 我是新来的。再次感谢。
【解决方案2】:

使用以下 xpath 获取值。

print(browser.find_element_by_xpath("//a[contains(.,'followers')]/span").get_attribute("title"))

【讨论】:

  • @DebanjanB :只需复制并粘贴 OP 代码即可。谢谢。现在工作太忙,无法贡献:-D
【解决方案3】:

您可以像这样使用xpath

print(browser.find_element_by_xpath("//li[contains(@class,'LH36I')]//a[contains(@class,'_81NM2')]//span[contains(@class,'g47SY lOXF2')]").get_attributes("title"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 2019-08-08
    • 1970-01-01
    相关资源
    最近更新 更多