使用Selenium提取ul下li元素仅返回第一个结果的问题求助
问题根因
你使用的find_element_by_xpath()是单元素匹配方法,仅会返回XPath规则命中的第一个节点,因此只能拿到首个
修正代码(Selenium 3.x版本兼容)
from selenium import webdriver driver = webdriver.Safari() driver.get("http://turkosb.com/kaynarca-mobilya-ihtisas-organize-sanayi-bolgesi.html") # 改用多元素匹配方法获取所有li节点,返回结果为列表 results = driver.find_elements_by_xpath("//ul[@class='firma-info']/li") # 遍历输出每个li的文本内容 for li in results: print(li.text)
Selenium 4.0+ 推荐写法
Selenium 4.0及以上版本已废弃find_element_by_*/find_elements_by_*系列接口,推荐使用统一的find_element/find_elements接口配合By类指定定位方式:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Safari() driver.get("http://turkosb.com/kaynarca-mobilya-ihtisas-organize-sanayi-bolgesi.html") results = driver.find_elements(By.XPATH, "//ul[@class='firma-info']/li") for li in results: print(li.text)
内容的提问来源于stack exchange,提问作者Kiddanube4
相关产品推荐
相关产品推荐

