如何用Python实现XPath字符串拼接,替代多IF语句?
用Python动态拼接XPath,告别一堆if/elif重复代码
嘿,我太懂你不想写十几个重复if/elif的心情了——冗余代码不仅看着闹心,后期改起来也费劲!咱们直接用Python的字符串格式化能力,把XPath里的页码换成动态变量,只用一段代码就能替代所有判断逻辑。
核心思路
你的需求里,下一页的标题是Go to page N,这里的N其实就是当前page_number + 1,完全不用逐个判断当前页码是1还是2,直接计算出目标页码后嵌入XPath就行。
具体实现代码
推荐用Python 3.6+支持的f-string,语法简洁直观:
# 计算下一页的页码 next_page_num = page_number + 1 # 动态拼接XPath字符串 next_link = browser.find_element_by_xpath(f'//*[@title="Go to page {next_page_num}"]') next_link.click() page_number = next_page_num time.sleep(30)
如果你的Python版本比较旧,也可以用str.format()语法:
next_page_num = page_number + 1 xpath_template = '//*[@title="Go to page {}"]' next_link = browser.find_element_by_xpath(xpath_template.format(next_page_num)) next_link.click() page_number = next_page_num time.sleep(30)
额外优化:处理无下一页的情况
怕遇到最后一页找不到元素报错?可以加个异常捕获:
from selenium.common.exceptions import NoSuchElementException try: next_page_num = page_number + 1 next_link = browser.find_element_by_xpath(f'//*[@title="Go to page {next_page_num}"]') next_link.click() page_number = next_page_num time.sleep(30) except NoSuchElementException: print("已经翻到最后一页啦,没有下一页链接了") # 这里可以添加退出循环、结束程序等逻辑
这样一来,不管当前是第几页,都能用同一段代码处理下一页跳转,彻底告别一堆重复的if/elif!
内容的提问来源于stack exchange,提问作者ekim420
相关产品推荐
相关产品推荐

