You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Python/Selenium中较复杂的代码块进行缩进?

Python/Selenium代码缩进修正与解释

嘿,作为Python/Selenium新手,缩进确实是最容易踩坑的点之一——毕竟Python完全靠缩进划分代码块,不像其他语言用大括号来圈定范围~ 我帮你把这段代码的缩进修正好了,顺便给你拆解下关键逻辑:

修正后的代码

from selenium.webdriver.common.action_chains import ActionChains  # 别忘了导入ActionChains,否则会报错!

articles = driver.find_elements_by_tag_name('article')
for article in articles:
    # 移动到当前article元素,属于循环体内容,必须缩进
    ActionChains(driver).move_to_element(article).perform()
    
    # 判断商品状态的条件分支,if和else下的代码都要缩进
    if article.find_element_by_tag_name('a').text == "sold out":
        print("sold out")
    else:
        print("available")
    
    # 获取当前article下的衬衫和颜色元素,同样属于循环内的操作
    shirts = driver.find_elements_by_xpath("""//*[@id='container']/article/div/h1/a""")
    colors = driver.find_elements_by_xpath("""//*[@id='container']/article/div/p/a""")
    
    # 遍历衬衫与颜色的组合,嵌套循环内的代码也要缩进
    for shirt, color in zip(shirts, colors):
        shirt_text = shirt.text
        color_text = color.text
        print(shirt_text, color_text)  # Python3中print是函数,必须加括号
    
    # 获取当前article的链接,缩进在最外层循环内,保证每个article都能拿到链接
    link = article.find_element_by_xpath('div/a').get_attribute('href')
    print(link)

关键缩进规则说明

  • 所有属于for循环、if/else分支的代码块,都必须缩进(推荐用4个空格,别混用制表符和空格,容易触发语法错误)。你原来的代码里,循环和条件分支下的语句都没缩进,Python会把它们当成循环外的独立代码,完全不符合你想要的“逐个处理每个article”的逻辑。
  • 嵌套结构(比如循环里套循环)要逐层缩进,层级清晰才不容易搞混。
  • 额外提一句:别忘导入ActionChains类,否则代码会直接报错哦~

内容的提问来源于stack exchange,提问作者cyber1337

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:16:33