Skip to main content
 首页 » 编程设计

javascript之用 Selenium 刮和点击表格

2025年05月04日27TianFang

我想抓取此网站表单的模拟“Richiedi il tuo prestito online”:

https://www.findomestic.it/ 

我试过这个:

driver = webdriver.PhantomJS() 
driver.get("https://www.findomestic.it/") 
raison = driver.find_element_by_xpath("//a[@href='javascript:void(0);']") 
montant = driver.find_element_by_id('findomestic_simulatore_javascript_importo') 
submitButton = driver.find_element_by_id('findomestic_simulatore_javascript_calcola') 
actions = ActionChains(driver).click(raison).send_keys('AUTO NUOVA').click(montant).send_keys('2000').send_keys(Keys.RETURN) 
actions.perform() 
print(driver.find_element_by_tag_name('body').text) 
print(driver) 
driver.close() 

我期望的输出是单击表单时的结果。我想找到带有利率和金额的网页结果。

expected outpout 但是打印不正确:

结果只是将 session 发回给我:

<selenium.webdriver.phantomjs.webdriver.WebDriver(session="c4070330-18b2-11e9-81cf-2dbe9dae6b83")> 

请您参考如下方法:

print(driver) 返回 WebDriver 实例 (driver.__str__()) 的字符串表示,这是正常行为

print(driver.find_element_by_tag_name('body').text) 没有返回任何内容,因为在您提交表单页面 body 后为空 -它仅包含未在页面上显示的脚本,因此 text 属性按预期返回空字符串

您需要等待结果出现在页面上:

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium import webdriver 
 
driver = webdriver.PhantomJS() 
driver.get("https://www.findomestic.it/") 
 
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.select.bh-option"))).click() 
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, 'AUTO NUOVA'))).click() 
driver.find_element_by_id("findomestic_simulatore_javascript_importo").send_keys("2000") 
driver.find_element_by_id('findomestic_simulatore_javascript_calcola').click() 
 
for item in WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'ul.fd-siff-element > li')))[1:]: 
    print(item.text.split('\n')[:-1]) 

输出应该是

['56,20 € PER', '42 MESI', '9,54 % TAN FISSO', '9,97 % TAEG FISSO'] 
['64,10 € PER', '36 MESI', '9,53 % TAN FISSO', '9,96 % TAEG FISSO'] 
['75,20 € PER', '30 MESI', '9,54 % TAN FISSO', '9,97 % TAEG FISSO'] 
['91,80 € PER', '24 MESI', '9,46 % TAN FISSO', '9,89 % TAEG FISSO'] 
['119,70 € PER', '18 MESI', '9,54 % TAN FISSO', '9,97 % TAEG FISSO']