【问题标题】:how do I get a Specific part of a web attribute in python with selenium?如何使用 selenium 在 python 中获取 web 属性的特定部分?
【发布时间】:2021-02-16 13:42:43
【问题描述】:

我需要在 window.open ('/echipa/lok-moscova/Sjs63WfK') 之后获取该部分作为字符串 从这个带有硒的网络元素中,我真的不知道该怎么做。如果我能做到的话。

<a href="#" class="participant-imglink" onclick="window.open('/echipa/lok-moscova/Sjs63WfK'); return false;">Lok. Moscova</a>

【问题讨论】:

    标签: python selenium-webdriver href


    【解决方案1】:

    你需要在 selenium 中找到元素。最简单的方法是通过 id,你可以通过很多东西进行搜索(查看更多here)。

    linkElement = driver.findElement(By.id("id"))
    

    接下来,您可以将属性提取为字符串

    text = linkElement.getAttribute("onclick");
    

    并删除过时的部分

    text = text.replace("window.open(", "").replace(")", "")
    

    那就是你的"/echipa/lok-moscova/Sjs63WfK"

    【讨论】:

    【解决方案2】:

    这是 BeautifulSoup 的示例(您可以从 selenium 页面源创建汤对象):

    import re
    from bs4 import BeautifulSoup
    
    txt = '''
        <a href="#" class="participant-imglink" onclick="window.open('/echipa/lok-moscova/Sjs63WfK'); return false;">Lok. Moscova</a>
    '''
    
    soup = BeautifulSoup(txt, 'html.parser')
    
    link = soup.select_one('a.participant-imglink[onclick]')
    url = re.search(r"window\.open\('(.*?)'\)", link['onclick']).group(1)
    print(url)
    

    打印:

    /echipa/lok-moscova/Sjs63WfK
    

    【讨论】:

      猜你喜欢
      • 2020-06-10
      • 2023-01-08
      • 2021-03-12
      • 2021-10-19
      • 2020-07-24
      • 1970-01-01
      • 2017-09-08
      • 2019-04-30
      • 2022-11-24
      相关资源
      最近更新 更多