如何用Selenium Python选择指定卡片内的button-class按钮
特定卡片内按钮的点击方案
针对你需要点击card-summer_1和card-summer_3卡片内button-class按钮的需求,有几种直接可行的实现方式:
方法一:先定位父卡片,再找内部按钮
先通过ID找到目标卡片元素,再在该元素范围内查找按钮,避免全局匹配:
# 点击card-summer_1内的目标按钮 target_card = browser.find_element(By.ID, 'card-summer_1') target_card.find_element(By.CLASS_NAME, 'button-class').click() # 点击card-summer_3内的目标按钮 target_card = browser.find_element(By.ID, 'card-summer_3') target_card.find_element(By.CLASS_NAME, 'button-class').click()
方法二:用CSS选择器直接定位(更简洁)
利用CSS选择器的层级关系,直接组合父元素ID和子元素类名,一步定位到目标按钮:
# 定位并点击card-summer_1内的button-class按钮 browser.find_element(By.CSS_SELECTOR, '#card-summer_1 .button-class').click() # 定位并点击card-summer_3内的button-class按钮 browser.find_element(By.CSS_SELECTOR, '#card-summer_3 .button-class').click()
方法三:批量处理多个目标卡片
如果需要处理的卡片数量较多,可以将目标ID存入列表,循环执行点击操作:
# 定义需要操作的卡片ID列表 target_card_ids = ['card-summer_1', 'card-summer_3'] # 循环遍历并点击每个卡片内的目标按钮 for card_id in target_card_ids: browser.find_element(By.CSS_SELECTOR, f'#{card_id} .button-class').click()
说明:CSS选择器中,
#代表ID选择器,空格代表选择后代元素,所以#card-summer_1 .button-class会精准匹配到该卡片下所有class为button-class的按钮,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Firefoxer
相关产品推荐
相关产品推荐

