我抓取一个按钮列表,然后我尝试点击一个特定的按钮对象,我收集所有按钮(其中包含详细信息,如名称)。我检查名称,如果我已经单击此按钮,传递,否则单击此按钮对象。
我遇到的问题是该按钮没有ID,因此我不确定如何动态识别按钮以单击它(从循环中的对象)。它也没有HREF。
如果它有一个ID,我可以获取ID值并构建一个selenium单击,甚至像browser.find_element(By.ID, "button-ID").click()。
如有任何指示,将不胜感激。
html = browser.page_source
soup = BeautifulSoup(html, "lxml")
buttons = soup.find_all('button', {'class', 'full-width'})
for button in buttons:
button_soup = BeautifulSoup(str(button), 'lxml')
name_div = button_soup.find('div', {'class': 'artdeco-entity-lockup__title'})
name = name_div.find('span', {'aria-hidden': 'true'}).text
if name in lead_check:
pass
else:
"""HERE IS WHERE I NEED TO CLICK THE BUTTON OBJECT"""
browser.find_element(By.CSS_SELECTOR, "button.full-width").click() 对象(循环中的一个按钮)示例
<button class="full-width member-analytics-addon__cta-list-item-content member-analytics-addon-entity-list__link member-analytics-addon-entity-list__link--no-underline-hover" role="button" type="button">
<div class="member-analytics-addon-entity-list__entity artdeco-entity-lockup artdeco-entity-lockup--size-3 ember-view" id="112">
<div class="artdeco-entity-lockup__image artdeco-entity-lockup__image--type-circle ember-view" id="113" type="circle">
<div class="ivm-image-view-model">
<div class="ivm-view-attr__img-wrapper ivm-view-attr__img-wrapper--use-img-tag display-flex">
<!-- --> <img alt="" class="ivm-view-attr__img--centered EntityPhoto-circle-3 EntityPhoto-circle-3 lazy-image ember-view" height="48" id="114" loading="lazy" src="linktopic" width="48"/>
</div>
</div>
<!-- -->
</div>
<div class="artdeco-entity-lockup__content ember-view member-analytics-addon-entity-list__entity-content" id="115">
<div>
<div class="artdeco-entity-lockup__title ember-view member-analytics-addon-entity-list__entity-content-title" id="116">
<span dir="ltr"><span aria-hidden="true"><!-- -->John Smith<!-- --></span><span class="visually-hidden"><!-- -->View Johns’s profile<!-- --></span></span>
</div>
<div class="artdeco-entity-lockup__badge ember-view t-normal" id="117"><!-- --> <span aria-hidden="false" class="artdeco-entity-lockup__degree">
· 3rd
</span>
<!-- --><!-- --></div>
<div class="artdeco-entity-lockup__subtitle ember-view" id="118">
<!-- -->Loves cats<!-- -->
</div>
<!-- --> </div>
<!-- --> </div>
</div>
</button>发布于 2022-11-27 20:01:44
我通过在每个按钮中标识一个唯一变量来解决这个问题,在这个例子中,一个IMG然后用selenium动态地定位每一个。
img_src = button_soup.find('img')['src']
path_location = "//img[contains(@src,'{}')]".format(img_src)
browser.find_element(By.XPATH, path_location).click()https://stackoverflow.com/questions/74586418
复制相似问题