如何为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
相关产品推荐
相关产品推荐

