【问题标题】:Clicking on 'href' from <a> tag点击 <a> 标签中的“href”
【发布时间】:2019-05-15 11:35:31
【问题描述】:

嗨,我在 python 中有以下内容

#Searching for company
varA = soup.find(Microsoft)
#Finding the <a> tag which contains href
#{<a data-deptmodal="true" href="https://someURL BASED ON COMPANY NAME">TEXT BASED ON COMPANY NAME</a>}
button = org.find_previous('a')
driver.find_element_by_tag_name(button).click()

我得到一个类似的错误

TypeError: 'Tag' 类型的对象不是 JSON 可序列化的

我得到汤后如何让网络驱动程序点击我的href 请注意,每次我更改公司名称时,我的 href 都会更改。

【问题讨论】:

  • 您不需要bs4,只需单击基于公司名称driver.find_element_by_link_text("Microsoft").click()driver.find_element_by_partial_link_text("Microsoft").click()的链接(如果"Microsoft"不是链接文本中的唯一字符串)

标签: python selenium-webdriver beautifulsoup


【解决方案1】:

要添加到现有评论,BeautifulSoup 是一个 HTML 解析器,它可以帮助您从 HTML 中提取数据,它不以任何方式与页面交互 - 它不能,因为例如,点击链接。

如果您需要点击浏览器中的链接,请通过selenium 进行。在您的情况下,.find_element_by_link_text()(或.find_element_by_partial_link_text())定位器非常适合该问题:

driver.find_element_by_link_text("Microsoft")

文档参考:Locating Hyperlinks by Link Text

【讨论】:

  • 感谢您的回答,但我的问题是它并不总是微软。我想让我的代码对于不同的宏(公司)更加动态。请问你是怎么做到的?
  • @NewLearner 你是什么意思更动态?你能详细说明一下吗?谢谢。
猜你喜欢
  • 2014-08-24
  • 1970-01-01
  • 2021-03-03
  • 2013-01-02
  • 2020-09-29
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 2023-04-09
相关资源
最近更新 更多